坎 香 李国英
(1.江阴职业技术学院 计算机科学系,江苏 江阴 214400;2.江阴急救中心 综合科,江苏 江阴 214400)
基于ThinkPHP的120急救调度管理平台的设计与实现
坎香1李国英2
(1.江阴职业技术学院 计算机科学系,江苏 江阴 214400;2.江阴急救中心 综合科,江苏 江阴 214400)
摘要:为了更好地服务于急救病人,保证急救工作的及时、快速、高效的完成,开发了基于ThinkPHP的120急救调度管理平台。该系统采用B/S结构,基于ThinkPHP开发框架,采用MVC设计模式实现了急救任务调度等功能。该系统提供了受理急救事件、事件任务调度、急救车辆管理、救护人员管理、报表统计等功能,使急救调度管理更高效、更科学,避免了人工调度迟缓带来的生命财产损失,实现了120急救调度的系统化、规范化和自动化。
关键词:ThinkPHP;120;急救调度
生命绿色通道120在保护人类的生命安全方面作出了巨大的贡献,也取得了人们的信任和尊重。随着人们生活节奏的加快以及计算机技术的成熟,120急救中心传统的人工调度方式已经不能满足人们的需求,出车速度慢、盲目出车、求救人员的状况信息不具体等导致急救措施不能及时送到病人身边,急救病人不能被及时地送到医院作进一步的治疗[1]。因此,我们开发设计了基于ThinkPHP的120急救调度管理平台。
1系统开发工具
相较于C/S结构,B/S结构的网站系统的用户端不需要开发和安装专用的客户端软件,只需在浏览器通过地址访问网站即可,因此,该系统基于B/S体系结构进行开发。使用DIV+CSS+JS进行系统DEMO的设计,采用Apache服务器来处理和反馈HTTP请求,后台数据库使用ThinkPHP的黄金组合MYSQL数据库,采用ThinkPHP技术完成服务器端的业务处理功能。
1.1Apache服务器
Web服务器的主要功能是处理HTTP请求以及解析HTTP协议,而Apache服务器作为世界使用排名第一的Web服务器,其特点是简单、速度快、性能稳定,它可以运行在几乎所有的计算机平台上。由于Apache服务器是开源软件,因此不断有人来为它开发新的功能、新的特性,修改原来的缺陷。
1.2ThinkPHP技术
ThinkPHP是一个免费开源的轻量级PHP框架,采用面向对象的设计思想,基于MVC的三层设计模式,具有部署和应用极为简单、效率高、速度快、扩展性和可维护性好等特点,使用ThinkPHP技术可以使Web开发变得更简单、更快捷。
1.3MYSQL数据库
MYSQL是一个功能强大的关系型数据库系统,该系统使用最常用的结构化查询语言(SQL)进行数据库管理,是一个真正的多用户、多线程的SQL数据库服务器。MYSQL是客户机/服务器结构软件的实现,由于其源代码的开放性及稳定性,且与网站流行编程语言ThinkPHP的完美结合,使很多站点都利用其作为服务器端数据库,获得了广泛的应用。
2系统总体结构
通过对120急救业务的调研和分析,本系统的功能包括两部分:管理部分和用户部分。管理部分又由救护人员管理模块、急救车辆管理模块、报表管理模块、统计管理模块、受理急救事件管理模块和事件任务调度管理模块组成。用户部分包括用户信息浏览和用户密码修改。系统的功能结构如图1所示。
3设计与功能详细分析
本系统作为120综合指挥调度系统的核心子系统,具有通常120急救调度系统应该具有的所有功能,包括用户登录、救护人员信息管理、急救车辆信息管理、任务调度等各类信息的统计管理、呼叫信息等各类信息的报表管理、受理急救事件管理、事件任务调度管理等。
3.1数据库设计
系统主要实现对急救事件的受理并对急救事件任务进行智能调度。调度员对急救事件进行受理和监控、对事件任务进行调度和管理,同时,调度员可以对急救车辆信息、救护人员信息进行维护。数据库表的设计包括16张数据表:系统管理员表(表名:tb_ users)、医院信息表(表名:tb_ hospitals)、急救医生信息表(表名:tb_aiddoctors)、急救护士信息表(表名:tb_aidnurses)、医疗辅助工具信息表(表名:tb_ aidtools)、护工信息表(表名:tb_aidworkers)、急救疾病信息表(表名:tb_aidstyle)、急救司机信息表(表名:tb_aiddrivers)、急救科室信息表(表名:tb_aidoffices)、受理事件信息表(表名:tb_ aidacceptevent)、事件任务调度表(表名:tb_aiddispatch)、急救车辆信息表(表名:tb_aidcars)、急救车辆类型信息表(表名:tb_aidcarstyle)、急救车辆状态表(表名:tb_aidcarstate)、任务急救车辆状态表(表名:tb_taskcarstate)、急救事件类型表(表名:tb_ aideventtype)。
3.2功能模块设计
3.2.1用户登录
系统登录界面为指挥调度员登录界面。指挥调度员通过输入正确的用户名、正确的用户密码、正确的验证码即可进入120急救调度主界面。为了保证系统的安全性,必须对登录用户进行身份验证。用户登录模块对用户输入的登录信息分别进行客户端验证和服务器端验证,检查用户名、用户密码、验证码是否为空,验证用户名是否为邮箱格式、用户密码的长度是否为6至20位、验证码是否是4位数字,检查用户名、用户密码、验证码是否正确,以确保用户输入信息的有效性和系统的安全性。
3.2.2受理急救事件
调度员登录系统进入系统主界面并接到急救电话后,在系统中简要地录入急救事件的信息和急救病人的情况信息,点击“保存”按钮,从而生成一个急救受理事件,如图2所示。点击系统主界面左侧“事件监控”菜单可以浏览到所有的急救受理事件,且可以通过输入急救受理事件的受理人或者受理日期或者伤员姓名或者事件编号来实现急救受理事件的快速查询,系统自动列出所要查询的急救受理事件信息。
3.2.3事件任务调度
针对急救受理事件,在任务监控一览表中罗列出所有急救受理事件的信息以及急救受理事件的任务接受状态,如图3所示。在任务监控一览表中,若急救受理事件已被调度派遣,则任务接受状态显示为“任务已接受”;若急救受理事件还没有被调度派遣,则提供相应的“接受任务”导航超链接,调度员通过点击“接受任务”导航超链接便可进行事件任务派遣[2]。在对事件任务进行调度派遣时,系统提供了智能派遣功能。系统根据急救受理事件信息,结合伤员的求救位置、道路交通状况、医院的地理位置及主治特色、急救医生的空闲情况进行综合分析,得出几个可行的救助方案,然后调度员根据以往调度经验得到最佳调度方案并采用最佳调度方案对事件任务进行派遣。事件任务被派遣后,在任务管理一览表中,可以浏览到所有事件任务的ID、对应的急救受理事件编号、派遣的急救车辆车牌号、急救医生、急救护士、急救司机、任务状态等信息以及任务管理功能。若事件任务已结束,任务状态显示“任务已结束”;若事件任务没有结束,任务状态显示“任务中”,并且当出车任务已完成,调度员可以通过点击任务管理栏中提供的“结束任务”超链接来结束事件任务。在事件任务没有结束前,可以通过点击主界面左侧“任务车辆状态”菜单查看所有任务车辆的状态。在任务车辆状态一览表中可以浏览任务车辆的车牌号、对应的事件任务ID、对应急救受理事件编号、急救车辆出车时间等信息,且通过输入事件任务ID或任务车辆车牌号来实现任务车辆的快速查询,系统自动列出所要查询的任务车辆的信息。
3.2.4急救人员信息管理
主要实现急救人员(急救医生、急救护士、护工、急救司机、医疗辅助工具)和急救科室信息的浏览、新增、编辑、删除和快速查询功能。例如,在急救医生信息一览表中,显示了所有急救医生的姓名、工号、性别、联系方式、所属医院、所属科室以及急救医生的专长等,且可以通过输入急救医生的姓名或工号来实现急救医生的快速查询。
3.2.5急救车辆信息管理
主要实现急救车辆的列表功能、急救车辆的新增功能和急救车辆的快速查看功能。其中,在急救车辆的快速查看功能中,页面上提供了3种快速查看导航链接,分别是显示空闲急救车辆、显示任务急救车辆、显示维修急救车辆,以便调度员可以及时了解所有急救车辆的状况,并为调度员作出正确的调度决策提供一定的依据。
3.2.6报表管理
主要实现呼叫信息报表、受理信息报表、急救车出车信息报表、急救车详细出车信息报表、急救人员出车信息报表功能。其中,在急救人员出车信息报表功能中,页面上提供了4种急救人员出车报表信息查看链接,分别是急救医生出车报表、急救护士出车报表、急救司机出车报表、护工出车报表。
3.2.7统计管理
主要实现了近三年年度出车时间段次数统计、急救疾病类型次数统计、呼叫时间月份次数统计、调度月份次数统计[3],且提供了5种不同的图表来进行汇总统计,分别有柱状图、折面图、折线图、曲面图、曲线图。
4基于ThinkPHP的系统技术要点
4.1同一页面提供急救车辆3种状态快速查看链接
急救车辆的状态可分为空闲中、任务中、维修中3种情况,因此,为了让调度员能及时、准确地了解到各急救车辆的状态,以便作出最佳决策,系统在一个页面上提供了3种状态的快速查看链接,分别是显示空闲急救车辆、显示任务急救车辆、显示维修车辆。实现3种状态快速查看功能的部分代码如下:
public function searchcar(){
$search=$_POST[′search′];
$Model = new Model() ;
$cars=new CarsModel();
if($search==″显示空闲车辆″){
$conditiom[$cars→_carrepair]=′否′;
$conditiom[$cars→_carstatesId]=′待命′;
$count=$cars→where($conditiom)→count();
$list=$Model→query($sql);}
if($search==″显示任务车辆″){
$conditiom[$cars→_carrepair]=′否′;
$conditiom[$cars→_carstatesId]=′任务中′;
$count=$cars→where($conditiom)→count();
$list=$Model→query($sql);}
if($search==″显示维修车辆″){
$conditiom[$cars→_carrepair]=′是′;
$count=$cars→where($conditiom)→count();
$list=$Model→query($sql);}
$this→assign(″carslist″,$list);
$this→display();}
4.2近三年年度急救疾病类型次数统计
本系统可以通过5种不同的图表分别对近三年年度急救疾病类型次数进行统计,相关部门通过这些图表数据可以直观地了解到频发的疾病或事故类型,从而通过宣传这类疾病的预防措施以及事故的急救措施,减少人们不必要的生命财产损失。对近三年年度急救疾病类型次数进行统计的部分代码如下:
public function allpatients(){
$dispath=new DispathModel();
$condition1[$dispath→_eventtime]=array(′like′,′%′.
″2015″.′%′);
$condition1[$dispath→_eventname]=″烧伤″;
$list1=$dispath→where($condition1)→count();
$condition2[$dispath→_eventtime]=array(′like′,′%′.
″2015″.′%′);
$condition2[$dispath→_eventname]=″中毒″;
$list2=$dispath→where($condition2)→count();
$condition3[$dispath→_eventtime]=array(′like′,′%′.
″2015″.′%′);
$condition3[$dispath→_eventname]=″临产″;
$list3=$dispath→where($condition3)→count();
$this→assign(′shaoshang′,$list1);
$this→assign(′zhongdu′,$list2);
$this→assign(′linchan′,$list3);
$this→display();}
5结语
本文设计了基于ThinkPHP的120急救调度管理平台,设计中注重指挥调度的实时性和实用性。该系统具有强大的智能调度功能,提高了调度人员调度派遣的效率;灵活方便的报表查询功能和强大的数据统计功能,为频发急救疾病的预防发挥了一定的作用。
参考文献:
[1]孙刚,张海涛.院前急救流程预案[M].北京:军事医学科学出版社,2010.
[2]张世红,琚文胜.北京卫生综合指挥调度信息平台的建设[J].中国数字医学,2008,(8).
[3]张军,宋小玲,黄先玉.院前急救指挥调度信息分析[J].岭南急诊医学杂志,2008,(2).
责任编辑:柴造坡
doi:10.3969/j.issn.1674-6341.2016.03.010
收稿日期:2016-03-24
基金项目:江阴职业技术学院2015年立项科研项目(项目编号:15-E-XZ-19)
第一作者简介:坎香(1986—),女,江苏江阴人,在读硕士,讲师。研究方向:计算机网络编程。
中图分类号:TP311
文献标志码:A
文章编号:1674-6341(2016)03-0020-03