郭小磊,王雅
(山西中医药大学 健康服务与管理学院,山西 太原 030619)
随着国家推动村卫生室向社区卫生服务站的转型[1]村卫生室的规模也在逐步扩大,药品种类逐渐繁多,数量增加。如何有效进行药品管理成为村卫生室面临的一个主要问题。当下村卫生室的信息化建设仍然处于信息化盲区,为实现医疗领域的县乡村一体化,应重视乡村卫生室的建设力度,达到信息共享,全面建立个人终身电子健康档案,以提高我国国民生活安全感与幸福感。
本系统设计采用Struts2+Spring+Hibernate+Jquery框架。
具体技术为在MVC框架下用Struts2。Struts2建立在Struts1、Webroot基础上,其核心为Webroot。
其功能是OC依赖注入,它是一个最大的对象工厂,将所有对象根据依赖关系进行注入。
处于数据库访问层,完整的ORM框架(对象关系映射框架): 将数据库中每一个表映射为一个对应的Java类(POJO),只要在初期配置了映射关系,实现数据库增删查改,对应的SQL语句由Hibernate自动生成。在数据库符合一定规范的情况下适用。
与Hibernate相类似的Ibatis同属数据访问层,Ibatis为半自动ORM框架,对应的SQL语句由程序员手动生成。手写的SQL语句将返回结果包装成Java类的对象。虽然Ibatis灵活度,适用性高于Hibernate,但由于Ibatis开发效率低于Hibernate,且该系统数据库符合一定规范,因此选用Hibernate。
处于页面层,是一个JS类库,小巧轻便,没有提供UI组件(如下拉框,提示框)。
功能:对Html内各类标签如表格等进行快速检索;Ajax请求;事件模型处理[2]。
(1)IReport。对报表设计生成一个数据描述文件或XML数据文件。显示报表如何生成,进行报表设计。
(2)JsperReport:Java类库。解析IReport生成的数据文件,最后显示/转化为Pdf,Excel,Html格式。
MVC(Model-View-Controller)模型-视图-控制器,把各个职能角色进行划分,如Struts+Spring+Hibernate(SSH)等都是 MVC 的架构模式。系统中Struts2框架实现模型层,Hibernate框架实现控制层,Jsp实现视图层。而程序则是在数据库和前端之间起到桥梁连接作用。Hibernate在Dao部分起作用,主要为数据库进行增删查改操作,Spring的作用为控制程序流程。
本系统的目标用户主要为山西省(社区/村)卫生室或个体经营药店,主要业务包括药品入库,药品出库,库存盘点,收益额统计。具体调研点为山西省某镇18个卫生室及个别药店。由问卷调查报告可知,用户年龄大多为中年人;且大多数可以操作简单的系统,对于较为繁琐的系统则无从下手;大多卫生室在日常运营过程中有无法清算库存,无法计算营业额与利润的困扰;对使用药品出入库系统,用户表示可以尝试[3]。
结合调查结果,本系统将需求分为管理员经营者业务需求和用户业务需求。管理员经营者业务需求:用户管理,药品管理,入库记录查询,库存记录查询,出库记录查询,入库成本核算,出库成本核算,收益统计,入库报表打印,出库报表打印。用户业务需求:药品入库,库存查询,出库记录查询。
3.1.1 总体框架
本系统主要分为2个角色,即系统管理员和用户,系统总体设计框架如图1所示。
图1 系统总体设计框架
3.1.2 功能描述
接下来对本系统的模块功能进行描述。
(1)系统管理员模块。系统管理员模块主要有用户管理、药品管理、药品入库和出库管理的功能。①用户管理:添加/删除用户,密码修改等。②药品管理:添加/删除药品名称、产地、规格等信息。用户录入和药品种类录入为该模块的主要功能[4]。本系统为保证数据安全性,将用户名录入格式设定为单位所在区域代码与单位全称首字母共同组成,有效确保信息的安全性,保密性。③入库管理:添加药品种类,入库记录查询,入库成本核算,入库报表打印。④出库管理:成本核算,出库记录查询,出库报表打印。
(2)用户管理模块。用户管理模块具有药品查询、库存查询、药品入库和出库记录查询的功能。①药品查询:根据需求查询相关药品信息。②库存查询:根据药品编号或名称进行库存查询。③药品入库:根据入库时间、产品名称、编码等信息进行入库管理。④出库记录查询:根据出库时间、产品名称、编码、库存数量等信息进行记录查询。
为使本系统便于应用,将采用B/S模式,选用的数据库产品为MySQL。
本系统的数据表包括:财务表、出库表、入库表、库存表、药品表和用户表等。在此仅给出出库表、药品表、库存表,分别如表1、表2所示。
表1 出库表
表2 药品表
现就本系统主要功能模块的界面的设计和关键技术说明如下。
该功能用于药品种类的维护,规范下级医疗单位所用药品的种类与质量。系统管理员输入系统中的药品为可以医保报销的药品,医院药品实行中标药品网上集中采购,且零差价销售。系统的药品编码现在采用的为录入顺序编码,后续会采用国家医保局最新颁布的以一药一码原则而确定的药品编码,如图2所示。
图2 药品管理设计界面图
出库记录查询页面可以具体查到每一个用户进行的出库操作与具体时间,做到全局统筹动态管理,如图3所示。
图3 入库记录查询设计界面图
函数实现过程主要分为以下步骤:首先通过2句代码String bhno = request.getParameter(“bhno“);String ypname = request.getParameter(“ypname “);获取查询的选项;其次通过2条if语句if(bhno!=null &&!””.equals(bhno)){if(ypname!=null &&!””.equals(ypname))判断值是否为空,若不为空时,通过StingBuffer加查询的SQL语句和 wuliaoDao.selectBeanList调用查询方法的符合记录,再通过request.setAttribute把查询到的结果上传到对应界面。最后传回到指定的JSP页面this.setUrl(“wuliao/wuliaolist.jsp”)。通过以上步骤实现药品列表页对系统中药品信息的各种增删查改等操作[5]。
本系统在充分进行用户需求分析的基础上,开发出符合用户操作习惯的药品出入库系统。药品出入库系统对基层卫生室,零售药店而言愈发重要。对我国进一步实现医药领域的县乡村一体化管理,建立个人终身电子健康档案资料也有一定助益。在后续推广和应用中我们将对系统做进一步的改进和提升。