本论文介绍了一种基于B/S架构的医院药品管理系统的设计与实现。该系统具有管理员、药库员工和门诊人员三个角色,分别拥有不同的功能和权限。用户可以通过账号、密码和拼图验证进行登录,并可以注册新的账号,提供基本个人信息。管理员具有最高权限,可以管理系统用户、药品信息、药单信息,以及取药出库和采购计划。
系统的管理员可以访问后台首页,进行用户管理,包括添加、修改和删除用户信息。药品信息管理功能允许管理员查看药品信息列表和添加新的药品信息。药单信息管理功能允许管理员查看已有药单信息和添加新的药单信息,方便管理取药出库和采购计划。管理员的管理权限保证了药品管理的安全和可靠性。药库员工角色可以访问后台首页,管理药品信息、药单信息,以及取药出库和采购计划。药库员工的主要工作包括维护药品信息、处理药单信息,以及管理药品的进销存等工作。同时,药库员工还可以查看个人信息,方便管理人员的基本信息。门诊人员角色可以访问后台首页,管理药单信息,包括查看药单信息列表和添加新的药单信息。门诊人员的主要责任是在门诊环节处理患者的药品信息,包括开具药单等工作。通过系统,门诊人员可以方便地管理和查看药单信息。
总的来说,本论文设计的医院药品管理系统为药品管理提供了一个便利、高效和安全的解决方案。不同角色的用户可以根据自己的权限和需求进行操作,从而实现对药品管理的有效管理和监控。基于B/S架构的系统能够在常见的浏览器上使用,操作简单,便于推广和使用。
关键词:医院药品管理系统;Java语言;MySQL数据库;SSM框架
Abstract
This paper introduces the design and implementation of a hospital drug management system based on B/S architecture. The system has three roles: administrator, pharmacy staff, and outpatient staff, each with different functions and permissions. Users can log in through account, password, and puzzle verification, and can register a new account to provide basic personal information. Administrators have the highest authority to manage system users, drug information, medication list information, as well as medication retrieval and procurement plans.
The system administrator can access the backend homepage for user management, including adding, modifying, and deleting user information. The drug information management function allows administrators to view the list of drug information and add new drug information. The medication information management function allows administrators to view existing medication information and add new medication information, making it easy to manage medication retrieval and procurement plans. The administrator's management authority ensures the safety and reliability of drug management. The role of a pharmacy employee can access the backend homepage to manage drug information, medication list information, as well as medication retrieval and procurement plans. The main tasks of pharmacy employees include maintaining drug information, processing medication list information, and managing the inventory of drugs. At the same time, pharmacy staff can also view personal information, making it convenient for management personnel to have basic information. Outpatient personnel can access the backend homepage to manage medication information, including viewing the medication information list and adding new medication information. The main responsibility of outpatient staff is to process patient drug information during the outpatient process, including issuing medication orders and other related tasks. Through the system, outpatient staff can easily manage and view medication information.
Overall, the hospital drug management system designed in this paper provides a convenient, efficient, and safe solution for drug management. Users with different roles can operate according to their own permissions and needs, thereby achieving effective management and monitoring of drug management. The system based on B/S architecture can be used on common browsers, with simple operation and easy promotion and use.
Key words :Hospital drug management system; Java language; MySQL database; SSM Framework
1 绪论
1.1 研究背景与意义
医院药品管理系统是为了有效管理医院内药品信息、药单信息以及药品的进销存等工作,提高工作效率和质量而开发的系统。它对于医院管理和医疗工作具有重要的意义和价值。首先,医院药品管理系统可以有效提高药品管理的效率和准确性。传统的药品管理方式通常依赖于人工的操作和记录,容易出现信息不准确、数据重复录入等问题。而通过医院药品管理系统,可以实现自动化的药品信息管理、药单处理和库存管理等功能,减少人为错误,提高工作效率和准确性。其次,医院药品管理系统可以提升药品管理的安全性和可靠性。在医院的药品管理过程中,药品的存储、分发和使用环节涉及大量的人员和操作,容易出现错发、错用等问题,进而对患者的用药安全构成风险。而通过医院药品管理系统,可以规范药品管理流程,建立完善的审核和监控机制,提高药品管理的安全性和可靠性,降低患者用药风险。另外,医院药品管理系统还便于药品数据的统计和分析。医院药品管理系统可以实时记录药品的出入库情况、销售情况等,通过对这些数据的统计和分析,可以帮助医院进行药品需求预测、库存控制以及采购计划等,从而提高药品管理的决策水平和效果。
综上所述,医院药品管理系统的研究背景与意义在于提高药品管理的效率和准确性,保障患者用药的安全性和可靠性,以及提供数据支持和决策分析等功能,对于医院管理和医疗工作具有很大的帮助和促进作用。
1.2现状分析
医院药品管理系统在国内外已经得到广泛应用,并取得了一定的成效。以下是对国内外医院药品管理系统现状的分析:
在国内,医院药品管理系统的应用已经逐渐普及。一些大型综合医院和民营医院更早地引入了医院药品管理系统,实现了对药品进销存等环节的自动化管理。这些系统一般具备药品库存管理、药品的采购和发放、药品信息录入和查询等功能,并且支持医生开具药单、药房代煎等操作。此外,也有一些医院药品管理系统支持移动端应用,医生和药师可以通过手机或平板电脑随时查看和处理相关的药品管理工作。
在国外,医院药品管理系统也得到了广泛应用。一些国际知名的医院和医疗机构大多已经建立了先进的药品管理系统。这些系统通常具备丰富的功能,包括仓库管理、药方处理、自动配置和分配药品等,能够提高药品管理的效率和准确性。另外,一些国外的医院药品管理系统也支持与药厂和药店等供应方的电子交互,实现了药品供应链的信息化和管理。
总体来说,国内外医院药品管理系统的发展已经取得了一定的成就,但仍然存在一些不足之处。目前医院药品管理系统质量良莠不齐,一些系统的功能还不够完善,无法满足特定需求。此外,一些医院在实际应用中还存在使用难度大、操作过程繁琐等问题。因此,未来的发展方向应当是不断完善医院药品管理系统的功能,提高用户体验,同时加强对系统的安全性和稳定性的考虑。
1.3主要研究内容
本论文的主要研究内容是基于B/S架构的医院药品管理系统。通过对医院药品管理现有问题的分析,本研究旨在构建一个高效、便捷的医院药品管理系统,满足用户对药品管理的需求。具体而言,本研究将进行以下工作:首先,进行系统需求分析,详细描述医院药品管理系统的功能和非功能需求;其次,进行总体设计与架构,包括系统的整体架构、数据库设计和用户界面设计;然后,进行系统实现与测试,采用SSM框架进行开发,包括前端页面设计、后台逻辑实现和数据库连接,并进行功能测试和性能优化;最后,通过结果与讨论部分,展示系统实际应用的结果,并对系统进行讨论和分析,总结研究工作并提出改进和未来研究的展望。通过该研究,期望构建一个功能完备、性能优良的医院药品管理系统,提供更好的医药药品管理,同时也为SSM框架在实际开发中的应用提供经验和参考。
2 相关技术介绍
2.1 Java编程语言
Java是一种跨平台的高级编程语言,具有广泛应用于各个领域的优势。它拥有简单易学、可靠稳定、安全性强和良好的性能等特点。在基于B/S架构的医院药品管理系统中,Java将作为主要的后端编程语言来实现系统的核心功能。通过使用Java,我们可以实现数据的处理、业务逻辑的编写以及与前端界面的交互。同时,Java还提供了丰富的类库和开发工具,方便开发人员进行系统设计和开发。
2.2 MySQL数据库管理系统
MySQL是一种流行的开源关系型数据库管理系统,被广泛应用于Web应用程序的数据存储和管理。它具有高性能、稳定可靠和良好的扩展性。在医院药品管理系统中,MySQL数据库将用于存储和管理电影信息、用户数据、评论记录等相关数据。通过使用SQL语言进行数据操作和查询,我们可以实现对数据的增删改查操作,并保证数据的一致性和完整性。
2.3 SSM框架
SSM框架是由Spring、SpringMVC和MyBatis三个开源框架组成的一套Java Web开发框架。每个框架都有不同的职责和功能,它们相互配合形成一个完整的开发环境。Spring框架负责控制反转(IoC)和面向切面编程(AOP),提供了依赖注入和配置管理等功能;SpringMVC框架用于实现MVC模式,处理请求和响应的分发与处理;MyBatis框架则负责数据持久化层的开发,提供了方便的数据访问接口和映射关系。通过SSM框架,我们可以实现系统的各个模块之间的松耦合和高效协作,提高开发效率和系统性能。
3 系统需求分析
3.1可行性分析
基于B/S架构的医院药品管理系统在技术上可行,利用成熟的Java编程语言、MySQL数据库和SSM框架实现核心功能。操作上可行,用户界面设计友好且易于操作。经济上可行,开发成本相对较低,运维成本可控。因此,该系统具备良好的技术支持、操作便捷性和经济可行性。具体分析如下:
基于B/S架构的医院药品管理系统所采用的Java编程语言、MySQL数据库和SSM框架等技术在实际开发中得到了广泛应用和验证,具备成熟的技术基础和可靠性。Java作为一种跨平台的编程语言,拥有丰富的类库和开发工具,可以满足系统的各项需求。MySQL作为一种流行的关系型数据库管理系统,提供了高性能和稳定可靠的数据存储和管理功能。而SSM框架结合了Spring、SpringMVC和MyBatis三个优秀的开源框架,提供了灵活、高效和易扩展的开发环境,使系统的开发更加便捷和高效。因此,基于B/S架构的医院药品管理系统在技术上是可行的。
基于B/S架构的医院药品管理系统的操作界面设计合理,用户交互流程清晰,易于操作和使用。系统的前端界面通过友好的设计和布局,使用户能够直观地进行药品采购、取药等操作。同时,系统也提供了相应的反馈和提示,帮助用户顺利完成各项操作。此外,系统还考虑了不同设备的兼容性和响应式布局,使用户能够在不同平台和设备上进行操作。因此,基于B/S架构的医院药品管理系统在操作上是可行的。
在经济可行性方面,基于B/S架构的医院药品管理系统的开发成本相对较低。首先,Java作为一种免费且开源的编程语言,不需要额外的授权费用。其次,MySQL数据库也是一种开源的关系型数据库管理系统,可以免费使用。而SSM框架的开源性质意味着没有昂贵的许可费用。另外,系统的运行和维护成本相对较低,主要包括服务器租用和人员培训等方面。通过合理的规划和资源管理,可以降低系统的运营成本。因此,基于B/S架构的医院药品管理系统在经济上是可行的。
3.2功能需求分析
医院药品管理系统的主要目的分为两个。
(1)医院药品管理系统提供了管理和用户,用户与管理员进行互动交流的系统,用户可以通过注册获取一个帐户,查询药品信息,进行取药等。
(2)该系统需要很好的功能扩充性和可维护性。由于该系统是涉及的用户比较多,对管理员来说同样也是一个信息管理系统,包括用户信息药品信息、药单信息、取药出库、采购计划等。而且,随着用户数量的增加,必然对程序的更新迭代要求更高,所有在开发的时候就需要注意程序的可维护性和可拓展性。
3.3用例分析
医院药品管理系统中的管理员角色主要负责了如下功能操作。
药品信息管理:管理员可以对系统中的药品信息进行管理,包括药品信息的查看、编辑、添加和删除等操作。管理员可以维护药品信息的准确性和完整性,确保系统中的药品信息是最新的。
系统用户:管理员可以管理系统中的所有用户,包括管理员、药库员工、门诊人员等。管理员可以添加、删除、修改用户信息,设置用户权限和角色,确保系统的安全和规范运行。
药单信息管理:管理员可以查看和管理系统中的药单信息,包括药单的录入、查看、编辑和删除等操作。管理员可以检查药单的准确性和完整性,确保药品的发放和出库符合规定。
取药出库管理:管理员可以对药品的出库流程进行管理和监督,确保药品的准确发放和追踪。管理员可以查看出库记录、审核出库操作,并协助解决出库中可能出现的问题。
采购计划管理:管理员可以制定和管理系统中的药品采购计划,包括制定采购计划、审核采购订单、跟踪采购进度等操作。管理员可以根据系统的需求和药品库存情况,合理安排药品的采购和补货,确保药品供应的及时性和充足性。
医院药品管理系统中的药库员工角色功能如下。
药品信息管理:药库员工可以查看药品信息列表,并进行药品信息添加。
药单信息管理:药库员工可以查看系统中的药单信息,包括已处理和未处理的药单,方便查询和处理。
取药出库管理:药库员工可以进行药品的出库操作,包括扫描药品条码、录入发放数量等,确保药品的准确出库和追踪。
采购计划管理:药库员工可以根据药品库存情况和药单需求,提出药品的采购需求。
个人信息:药库员工可以查看和修改个人信息,包括姓名、电话号码、工作岗位等。
图3-2 药库员工角色用例图
医院药品管理系统中的门诊人员角色功能如下。
药单信息管理:门诊人员可以添加新的药单信息,录入病人的基本信息、开药医生、药品名称和用药剂量等,确保药单的准确性和完整性。
个人信息:门诊人员可以查看和管理自己的个人信息,包括姓名、工号、联系方式等。确保个人信息的准确性和安全性。
图3-3 门诊人员角色用例图
4系统总体设计
4.1系统功能模块设计
通过整体功能模块设计,我们将根据需求分析的结果,将系统的功能划分为不同的模块。每个模块负责实现特定的功能,并与其他模块进行协作。我们将详细定义每个模块的输入、输出、处理逻辑和相互依赖关系。系统功能模块图如下图所示。
图4-1医院药品管理系统功能模块图
4.2数据库设计
数据库设计是系统开发中至关重要的一环,它涉及到数据的组织、存储和管理。在数据库设计中,我们将根据系统的需求设计数据库的概念结构和逻辑结构,包括定义实体、属性、关系和约束等。如下图是系统的总E-R图。
图4-5系统总体E-R图
数据库逻辑结构设计则是在概念结构的基础上,进行具体的数据库表设计。我们将定义每个表的结构、字段和约束,并建立表与表之间的关系。具体如下:
表access_token (登陆访问时长)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
表auth (用户权限管理)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表drug_information (药品信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | drug_information_id | int | 10 | 0 | N | Y | 药品信息ID | |
2 | drug_name | varchar | 64 | 0 | Y | N | 药品名称 | |
3 | drug_specifications | varchar | 64 | 0 | Y | N | 药品规格 | |
4 | drug_batch | varchar | 64 | 0 | Y | N | 药品批次 | |
5 | drug_prices | varchar | 64 | 0 | Y | N | 药品价格 | |
6 | manufacturer | varchar | 64 | 0 | Y | N | 生产厂家 | |
7 | drug_code | varchar | 64 | 0 | N | N | 药品编码 | |
8 | packaging_unit | varchar | 64 | 0 | Y | N | 包装单位 | |
9 | medical_category | varchar | 64 | 0 | Y | N | 医疗类别 | |
10 | prescription_type | varchar | 64 | 0 | Y | N | 处方类型 | |
11 | production_date | date | 10 | 0 | Y | N | 生产日期 | |
12 | inventory_quantity | int | 10 | 0 | Y | N | 0 | 库存数量 |
13 | drug_description | text | 65535 | 0 | Y | N | 药品说明 | |
14 | deadline_days | int | 10 | 0 | Y | N | 0 | 临期日数 |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表hits (用户点击)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表medication_information (药单信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | medication_information_id | int | 10 | 0 | N | Y | 药单信息ID | |
2 | outpatient_staff | int | 10 | 0 | Y | N | 0 | 门诊人员 |
3 | personnel_name | varchar | 64 | 0 | Y | N | 人员姓名 | |
4 | medication_number | varchar | 64 | 0 | Y | N | 药单编号 | |
5 | medication_list_content | text | 65535 | 0 | Y | N | 药单内容 | |
6 | patient_name | varchar | 64 | 0 | Y | N | 病人姓名 | |
7 | invoice_date | date | 10 | 0 | Y | N | 开单日期 | |
8 | payment_status | varchar | 64 | 0 | Y | N | 支付状态 | |
9 | issuing_territory | varchar | 64 | 0 | Y | N | 开单属地 | |
10 | inpatient_building_area | varchar | 64 | 0 | Y | N | 住院楼区 | |
11 | hospital_room_number | varchar | 64 | 0 | Y | N | 住院房号 | |
12 | medication_note | varchar | 64 | 0 | Y | N | 药单备注 | |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表medication_retrieval_and_outbound (取药出库)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | medication_retrieval_and_outbound_id | int | 10 | 0 | N | Y | 取药出库ID | |
2 | pharmacy_staff | int | 10 | 0 | Y | N | 0 | 药库员工 |
3 | employee_name | varchar | 64 | 0 | Y | N | 员工姓名 | |
4 | drug_name | varchar | 64 | 0 | Y | N | 药品名称 | |
5 | drug_code | varchar | 64 | 0 | Y | N | 药品编码 | |
6 | medication_pick_up_date | date | 10 | 0 | Y | N | 取药日期 | |
7 | quantity_of_medication_taken | int | 10 | 0 | Y | N | 0 | 取药数量 |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表outpatient_staff (门诊人员)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | outpatient_staff_id | int | 10 | 0 | N | Y | 门诊人员ID | |
2 | personnel_name | varchar | 64 | 0 | Y | N | 人员姓名 | |
3 | personnel_phone_number | varchar | 64 | 0 | Y | N | 人员电话 | |
4 | gender_of_personnel | varchar | 64 | 0 | Y | N | 人员性别 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表pharmacy_staff (药库员工)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | pharmacy_staff_id | int | 10 | 0 | N | Y | 药库员工ID | |
2 | employee_name | varchar | 64 | 0 | Y | N | 员工姓名 | |
3 | employee_phone_number | varchar | 64 | 0 | Y | N | 员工电话 | |
4 | employee_gender | varchar | 64 | 0 | Y | N | 员工性别 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表procurement_plan (采购计划)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | procurement_plan_id | int | 10 | 0 | N | Y | 采购计划ID | |
2 | pharmacy_staff | int | 10 | 0 | Y | N | 0 | 药库员工 |
3 | employee_name | varchar | 64 | 0 | Y | N | 员工姓名 | |
4 | planned_date | date | 10 | 0 | Y | N | 计划日期 | |
5 | quantity_to_be_purchased | int | 10 | 0 | Y | N | 0 | 需采数量 |
6 | drug_name | varchar | 64 | 0 | Y | N | 药品名称 | |
7 | drug_code | varchar | 64 | 0 | Y | N | 药品编码 | |
8 | drug_prices | varchar | 64 | 0 | Y | N | 药品价格 | |
9 | drug_specifications | varchar | 64 | 0 | Y | N | 药品规格 | |
10 | packaging_unit | varchar | 64 | 0 | Y | N | 包装单位 | |
11 | manufacturer | varchar | 64 | 0 | Y | N | 生产厂家 | |
12 | procurement_description | text | 65535 | 0 | Y | N | 采购说明 | |
13 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
14 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表upload (文件上传)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
表user (用户账户:用于保存用户登录信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
表user_group (用户组:用于用户前端身份和鉴权)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5系统详细实现
5.1 系统总体的逻辑结构
系统总体的逻辑结构图描述了系统中各个模块之间的关系和交互方式。在该逻辑结构中,前端界面层作为用户与系统交互的入口,通过控制器层接收并处理用户请求,调用相应的服务层进行业务逻辑处理,然后通过数据访问层与数据库进行交互,实现对数据的增删改查操作。数据访问层将处理结果返回给服务层,服务层再将结果返回给控制器层,最终由前端界面层呈现给用户。整个系统按照这样的逻辑结构进行信息流动和功能实现,保证了系统的高效运行和良好的用户体验。逻辑结构图有助于理清系统的架构和模块之间的关系,方便开发人员进行系统设计、开发和维护工作。
系统的三层架构是一种常见的软件架构模式,将系统划分为表示层、业务逻辑层和数据访问层。表示层负责用户界面的展示和用户交互,包括前端页面和用户界面;业务逻辑层处理系统的核心业务逻辑和规则,实现对用户请求的处理和业务流程控制;数据访问层负责与数据源进行交互,提供对数据的读取、存储和操作。这种架构模式使得系统的各个层次之间解耦,易于维护、扩展和测试。同时,它也有利于团队合作和开发效率的提高,不同的开发人员可以专注于各自负责的层次,降低代码耦合性,提高系统的可维护性和可扩展性。通过三层架构,系统的各个功能模块能够更加清晰地组织和管理,使系统开发更加高效和可靠。
图5-2 三大操作类结构图
5.2系统功能实现
5.2.1系统主页功能实现
管理员可以通过首页快速访问各个管理功能模块,如后台首页、系统用户、药品信息管理、药单信息管理、取药出库管理、采购计划管理等,以便进行系统管理和操作。系统首页为管理员提供了一个集中管理和控制的入口,使其能够更加高效地管理和维护系统。如下图:

图5.3主界面
5.2.2用户注册登录功能实现
注册登录是医院药品管理系统的核心功能之一。用户可以通过注册功能创建个人账号,并使用登录功能进行身份验证,以便享受系统的各种功能和服务。注册登录功能模块有助于保护用户信息的安全性,确保只有经过授权的用户可以访问系统,并为用户提供个性化的体验和功能。具体的流程图和实现界面如下:
图5-4用户注册登入流程图

图5-5用户注册界面
注册关键代码如下所示。
5.2.3药品信息管理功能实现
管理员可以对系统中的药品信息进行管理,包括药品信息的查看、编辑、添加和删除等操作。管理员可以维护药品信息的准确性和完整性,确保系统中的药品信息是最新的,界面如图:

图5-6药品信息管理界面
5.2.4药单信息管理功能实现
管理员可以查看和管理系统中的药单信息,包括药单的录入、查看、编辑和删除等操作。管理员可以检查药单的准确性和完整性,确保药品的发放和出库符合规定。具体的实现界面如下图:

图5-7药单信息管理界面
5.2.5 取药出库管理功能实现
管理员可以对药品的出库流程进行管理和监督,确保药品的准确发放和追踪。管理员可以查看出库记录、审核出库操作,并协助解决出库中可能出现的问题。具体的实现界面如下:

图5-8 取药出库管理界面
系统用户:管理员可以管理系统中的所有用户,包括管理员、药库员工、门诊人员等。管理员可以添加、删除、修改用户信息,设置用户权限和角色,确保系统的安全和规范运行。具体的实现界面如下图:

图5-9系统用户界面
用户管理关键代码如下:

5.2.7采购计划管理功能实现
采购计划管理:管理员可以制定和管理系统中的药品采购计划,包括制定采购计划、审核采购订单、跟踪采购进度等操作。管理员可以根据系统的需求和药品库存情况,合理安排药品的采购和补货,确保药品供应的及时性和充足性。具体的实现界面如下图:

图5-10采购计划审核界面
6系统测试
6.1 系统测试目的
系统测试的目的是确保系统的功能完整、性能稳定,并验证系统是否符合预期的设计和需求。通过系统测试,可以发现和修复潜在的错误和缺陷,提高系统的质量和可靠性。同时,系统测试还可以评估系统在不同条件下的性能表现,包括并发性能、响应时间和容错能力等。通过全面的系统测试,可以确保系统在正式上线前达到高品质的状态。
6.2 系统可用性测试
系统可用性测试是评估系统在实际使用环境下的易用性和用户体验的过程。以下是进行系统可用性测试的一般步骤:
表5-1医院药品管理系统可用性测试
步骤 | 描述 |
1. 确定测试目标 | 明确测试的目标和范围,例如评估系统的界面设计、功能操作的流畅性、用户反馈的及时性等。 |
2. 制定测试计划 | 制定详细的测试计划,包括测试的方法、测试场景、测试数据和测试指标等。 |
3. 进行功能测试 | 按照测试计划执行功能测试,验证系统的各项功能是否正常工作,并检查功能操作是否符合用户预期。 |
4. 进行界面测试 | 测试系统的界面设计,包括页面布局、交互流程、控件可用性等方面,确保用户界面的易用性和一致性。 |
5. 进行性能测试 | 测试系统的性能表现,包括响应时间、并发处理能力、负载承受能力等,以确保系统在高负载情况下仍能正常运行。 |
6. 进行用户体验测试 | 邀请真实用户参与测试,观察他们在使用系统时的反应和反馈,并收集他们对系统的满意度和建议。 |
7. 收集和分析测试结果 | 收集测试过程中的数据和用户反馈,进行数据分析和整理,评估系统的可用性和用户体验。 |
8. 提出改进建议 | 根据测试结果提出改进建议,针对发现的问题和用户反馈,优化系统的设计、功能和性能,以提高系统的可用性和用户满意度。 |
6.3 系统典型测试用例
对系统的主要页面和功能点的测试用例如下:
表5-2用户登录系统测试用例
测试项 | 描述 |
1. 正确的用户名和密码 | 测试使用正确的用户名和密码进行登录,验证是否能成功登录系统。 |
2. 错误的用户名或密码 | 测试使用错误的用户名或密码进行登录,验证系统是否能正确提示登录失败。 |
3. 忘记密码功能 | 测试使用忘记密码功能重置密码,验证是否能通过验证方式成功重置密码。 |
4. 多设备登录 | 测试在不同设备上同时登录同一账号,验证系统是否能正常处理多设备登录情况。 |
表5-3 系统用户管理测试用例
测试项 | 描述 |
1. 用户列表显示 | 测试管理员界面是否能够正确显示系统中的用户列表,并包含用户的基本信息。 |
2. 添加用户 | 测试管理员是否能成功添加新用户,并验证新增用户是否能正常登录系统。 |
3. 修改用户信息 | 测试管理员是否能够修改用户的个人信息,如昵称、头像等,并验证修改后的信息是否生效。 |
4. 删除用户 | 测试管理员是否能够删除用户账号,并验证删除后该用户无法再登录系统。 |
5. 用户权限管理 | 测试管理员是否能够设置用户的权限,如禁止或解禁用户的操作权限。 |
表5-4 密码修改功能测试用例
测试项 | 描述 |
1. 正常修改密码 | 测试用户是否能成功修改自己的登录密码,并验证新密码是否能被系统接受并用于后续登录。 |
2. 忘记密码重置 | 测试用户是否能通过忘记密码功能进行密码重置,验证重置后的密码是否能正常使用。 |
3. 密码复杂性验证 | 测试系统是否能对新密码进行复杂性验证,如长度、字符类型等,并验证是否能正确提示密码要求。 |
4. 密码安全性 | 测试系统是否能对密码进行加密存储,以保证用户密码的安全性和保密性。 |
6.4 测试总结
经过对用户登录功能、用户管理功能和密码修改功能的测试,系统表现良好并满足预期需求。用户能够成功登录系统,管理员能够有效管理用户账号和权限。用户可以搜索、浏览、查看详细信息。同时,用户可以安全地修改自己的登录密码。测试过程中发现的问题已记录并提出改进建议,以进一步优化系统的设计、功能和性能。通过持续的测试和改进,系统将能够提供稳定可靠的运行,并为用户提供优质的体验和服务。
总结
本研究基于B/S架构开发了一个医院药品管理系统,旨在为用户提供医院药品管理等功能,并为管理员提供系统用户、药品信息管理、药单信息管理、取药出库管理、采购计划管理等功能。通过对系统的设计、开发和测试,取得了以下成果和贡献。
在系统设计方面,采用了B/S架构作为开发基础,实现了系统的三层架构,即表示层、业务逻辑层和数据访问层。这种架构使系统模块化、可扩展性强。在功能实现方面,系统成功地实现了用户登录、注册、药品管理等核心功能。用户可以方便地进行药品查询。管理员能够管理用户账号、药品信息,并审核采购计划。
系统还具备良好的用户体验和界面设计。通过合理的布局和交互设计,用户能够轻松地使用系统,并获得良好的用户体验。系统界面简洁明了,响应速度快,满足了用户对高效、便捷的需求。通过对系统进行全面的测试,验证了系统的稳定性和可靠性。系统在各种场景下均能正常运行,并保持良好的性能。
总而言之,基于B/S架构的医院药品管理系统在设计、功能实现、用户体验和性能方面取得了一定的成果。然而,仍存在一些局限性,如界面美化、推荐算法的优化等方面可以进一步完善和改进。未来可以进一步研究和改进系统,以提供更好的服务和用户体验。
参考文献
[1] 韩超, 邓勋,沈吟意.基于B/S架构的医学装备管理系统功能设计研究[J].中国设备工程,2023,(21):126-129.
[2] 吴伊如.药品和供应商资质管理系统的开发与应用分析——以公立医院为例[J].科技视界,2023,(10):114-117.
[3] 徐培国.基于B/S架构的医院信息管理系统HIS设计[J].电子技术,2023,52(02):56-57.
[4] 宗佳惠.基于RFID的医院药品物资条码库房管理系统[J].自动化技术与应用,2022,41(06):68-72.
[5] 王宝安,孙中志.基于B/S架构的医药进销存智能化管理系统的设计与实现[J].现代信息科技,2022,6(02):153-156.
[6] Xiaoyan Jin.Design of bridge health monitoring system based on B/S mode and SOA architecture[J].International Journal of Biometrics,2022,14(2):199-207.
[7] 赵博然, 张逸晖,薛雅蓉.基于B/S架构的医院质量管理系统设计与实现[J].电脑编程技巧与维护,2021,(11):80-82.
[8] Zhang Qiang.Design of the School-Enterprise Cooperation Management Information Platform Based on the B/S Architecture[J].International Journal of Antennas and Propagation,2021,2021
[9] Cui Wenchao,Gou Minghao.Design and Implementation of a SSH Proxy System Based on B/S Architecture[J].Journal of Physics: Conference Series,2021,2010(1):
[10] Dong Fei,Jinghan Song.Design of College Students’ Career Planning Guidance System Based On B/S Three-Tier Architecture[J].Journal of Education and Culture Studies,2021,5(4):
[11] 王颖瑞.药房信息管理系统的设计与实现[D]. 北京邮电大学, 2020.
[12] Liu Lingyong.Design of the Bridge Health Monitoring System Based on the B/S Mode and SOA Architecture[J].BASIC & CLINICAL PHARMACOLOGY & TOXICOLOGY,2020,126287-288.
[13] 帅乐军, 罗晓辉,马星钢.医院麻醉药品信息化管理系统的应用效果与体会[J].中国卫生信息管理杂志,2019,16(05):618-622.
[14] 李娇.医院易失效药品库存智能管理系统设计[J].粘接,2019,40(09):188-192.
[15] 徐梦雨,牛思允.基于J2EE的医院药品管理系统[J].电脑知识与技术,2019,15(19):105-108.
[16] 邹玉龙.区域医院药品信息智能化共享方案研究[J].微型电脑应用,2019,35(01):113-115+128.
[17] 张振.新医大肿瘤医院药品管理系统的设计与实现[D]. 大连理工大学, 2018.
[18] 王一冰.小型医院药品管理信息系统的搭建[D]. 燕山大学, 2018.
[19] 谷岩.医院药品管理系统的设计与实现[J].学园,2017,(20):163-164.
[20] 杨思捷.中医院药品管理信息系统设计与实现[D]. 电子科技大学, 2017.
致 谢
在完成基于B/S架构的医院药品管理系统的研究过程中,我要衷心感谢许多人和事。首先,我要感谢我的导师和指导教师,他们给予了我无私的指导和支持。他们的专业知识、经验和耐心指导使得我能够克服困难、解决问题,并顺利完成这项研究。其次,我要感谢我的家人和朋友,在我学习和研究的道路上一直默默支持和鼓励着我。他们的理解、关爱和鼓励是我不断前行、追求卓越的动力来源。最后,我要感谢所有为这项研究提供支持和帮助的人员和组织。没有你们的支持和帮助,我将无法完成这项研究并取得如此令人满意的成果。
在未来的学习和研究道路上,我将倍加珍惜这些宝贵的经验和机会。我将不断努力学习和进步,继续追求卓越,为社会做出更多的贡献。我深信,有了这次宝贵的经历和支持,我将能够在未来的道路上取得更大的成就。感谢所有给予我帮助和支持的人们,你们是我励志前行的源泉。
免费领取项目源码,请关注❥点赞收藏并私信博主+v,谢谢~