APP下载

地震现场信息管理系统的设计与实现

2022-05-20娄世平贾荣光杨玉永

华北地震科学 2022年2期
关键词:云端页面微信

娄世平,贾荣光,杨玉永,潘 健

(山东省地震局,济南 250102)

0 引言

地震事件是一种突发性自然灾害,人类对其发展规律难以了解、难以预测,一旦发生则会造成巨大的破坏和灾难性后果。地震事件的发生、发展速度很快,决策时间紧急,信息获取难度大,必须采取非常规手段加以应对[1]。震后应急管理具有多主体、多因素、多尺度、多变性的特征,涵盖决策指挥、救援处置、调查评估、监测预报、后勤保障等多个关键环节。震后的信息管理在震后处置工作中尤为重要,这既关系着指挥部能否在充分的信息支撑下做出科学、有效的指挥决策以及更好地回应媒体、公众关切,也关系着指挥命令能否到达工作网络的每一个末端节点,协调各工作组有序开展工作[2]。

中国现行地震事件响应和处置原则是“属地为主”,各救援队伍抵达灾区后,向地方指挥部领受任务并汇报工作进展。救援队伍不仅包括各行业的专业救援队,还包括各地的综合救援队伍和志愿者队伍。这些队伍的人员组成、队伍能力、装备配置都有差异,需要在统一的领导下协调开展工作。但是,汶川地震之后的几次地震处置行动反映出现场协同缺乏必要的技术手段,工作组之间、工作组与指挥部之间的沟通主要靠打电话、发短信等方式,信息共享范围有限,协同效率低下,现场指挥部快速、及时、准确把握全局工作的能力弱,直接影响了地震处置工作的开展。

地震应急处置中的信息管理目前已经有不少研究。赖俊彦[3]提出了利用物联技术在地震现场快速构建协同网络,实现灾区范围内不同主体间互联互通的方法;孙晓叶[4]设计了一套地震应急救援物资管理系统,为相关救灾管理部门提供了一个物资信息管理平台;学峰等[5]基于Android 平台设计了地震灾害信息采集系统。以上研究对地震现场信息管理做了有益探索,但主要是理论构想,或者其研究对象主要是震后物资管理、灾情搜集等单一环节,没有形成对震后应急管理工作全过程、全节点的信息管理。

为了更好地服务于地震现场处置工作,实现工作信息快速汇集、指挥命令准确传达,本文设计研发了一套地震现场信息管理系统。依托本系统,各类信息从震后出队伊始便源源不断地汇集、分发,现场信息在不同主体间进行了共享,指挥命令也可以快速传达到指定工作组。地震现场的工作紧张、忙乱,办公条件有限,本系统基于微信小程序开发,兼容了移动端不同的操作系统,最大程度简化了系统的分发、安装。在功能设计上,也尽量节省工作人员的操作步骤,充分调研,以现场工作的实际需要作为本系统的开发原则。

1 系统设计

1.1 震后现场应急处置

总结分析汶川地震、玉树地震等破坏性地震发生后的现场应急处置工作[6],将震后的现场工作归纳为10 个工作组(图1)。尽管不同的地震现场处置工作中,其组织结构不尽相同,但是现场工作基本都可以纳入本文所归纳的工作组。指挥部指令,任务完成后及时反馈。指令流转的过程中,信息流向必须明确,任务执行时可以通过本系统沟通协调,任务状态发生变化时即时更新。

图1 震后现场应急处置工作分组

信息管理系统也应具备信息广播功能,将地震现场编发的工作简报、通知公告等尽快传达到每一个人。

系统还应具备用户的分级、分组管理功能。每一名现场工作人员除了对应一个组别之外,在系统中还应对应一个权限,以区分其不同的操作层级。管理员权限最高,可以进行用户信息审核、地震事件管理、发布通知公告等操作;指挥员可以进行任务下达等操作;普通用户可以进行信息上报、信息查询、受领任务并反馈结果等一般性操作。

根据以上需求分析,对用户、需求、系统功能单元之间的关系进行规划设计(图2)。

图2 系统功能结构图

地震现场信息管理系统分组以图1 为依据。组别的配置参数保存在云端,如果现场需要临时调整组别,可以很方便地修改云端的配置参数,即可实现小程序端组别的变化,而不需要修改小程序代码再重新发布,很好地适应了复杂多变的现场情况。

1.2 需求分析和功能设计

地震一旦发生,地震预案立即启动,人员到位,装备就绪,一切处于紧张、忙碌的状态。在震后的应急处置工作中,需要一根线,将时间、空间上的各环节联系起来,才能有效形成合力,让震后应急工作忙碌而不慌乱、紧张而有节奏。要实现这个目的,信息畅通是关键。

震后信息管理系统首先应该是一个信息共享的平台。现场所有工作人员都可以通过本系统报送信息,现场信息通过系统不断更新拓展信息汇聚的渠道。系统也要提供一种便捷的信息查询方式,用户可以根据需要,设置查询条件,查询自己关注的信息。信息要能够导出到本地,更有利于后期处理。

地震现场情况不断变化,指令传达的及时性、准确性至关重要。信息管理系统也应建立一套指令流转机制:现场指挥部在全面掌握现场情况的前提下,做出决策,并对相关组下达指令;工作组受领

1.3 微信小程序开发框架

随着微信功能的不断扩张,微信已经从一个聊天工具逐渐转变成了一个生态系统。可以通过微信小程序设计师生交互系统、野外调查系统、实验室管理系统等[7-9],展现了微信小程序在轻量化应用上的巨大潜力。基于微信环境开发的微信小程序兼容了IOS、Android 等不同的操作系统,而且与原生App 相比,无需下载安装,用户扫描二维码即可运行,也非常适应于紧张、快节奏的地震现场工作环境。

微信小程序的开发框架被命名为MINA(图3),目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生APP 体验的服务。MINA 框架通过封装微信客户端提供的文件系统、网络通信、任务管理、数据安全等基础功能,对上层提供一整套JavaScript API,让开发者方便地使用微信客户端提供的各种基础功能与能力,快速构建应用。

图3 微信小程序MINA 框架示意图

MINA 框架主要分为页面视图层和应用逻辑层两大部分。页面视图层由WXML 和WXSS 文件构成,开发者使用WXML 文件来搭建页面的基本视图结构,使用WXSS 文件来控制页面的表现样式。AppService 应用逻辑层是MINA 框架的服务中心,使用JavaScript 编写,通过微信客户端启动异步线程单独加载运行,页面渲染所需的数据、页面交互处理逻辑都在其中实现。MINA 框架的核心是一个响应式的数据绑定系统,能让数据与视图很简单地保持同步,只需要在逻辑层修改数据,视图层就会做相应的更新。

1.4 系统架构

地震现场信息管理系统系统采用微信小程序云开发,无需搭建服务器,可免鉴权直接使用平台提供的 API 进行业务开发。云端提供了一个文档型数据库,采用JSON 对象记录数据;提供了一块存储空间,可以将文件、图片等上传到云端;提供了一个云函数的运行环境,开发者在开发工具中编写云函数代码,一键上传部署到云端。

该系统用户信息、工作信息、任务信息、通知公告等都通过客户端小程序上传到云端数据库,组别、权限等配置数据也保存在云端数据库(图4)。用户登录时首先从云端加载配置数据,实现了配置修改的灵活性。用户上传的文件、图片等保存在云端存储,通过传递File ID 调用。鉴权管理、消息推送、大文件产出等部分功能通过部署在云端的云函数进行了实现。

图4 系统架构

2 功能实现

2.1 用户管理

系统登录时,会首先调用云函数login,自动鉴权获得微信用户的openid,返回小程序端。小程序端以openid 为参数,查询数据库里是否保存有该用户的注册信息。如果该用户处于正常状态,则自动登录系统;如果该用户未通过审核,或者已被加入黑名单,则禁止登录;如果数据库里没有该用户注册信息,则进入用户注册界面,用户填写个人信息提交审核。具备管理员权限的用户审核注册信息,对于申请管理员、指挥员权限的用户,需要进一步核实用户身份。管理员也可将不符合要求的用户加入黑名单,禁止其登录系统。已注册用户可进入修改用户信息界面,修改权限、组别等个人信息,重新提交审核。用户管理功能的状态如图5所示。

图5 用户管理功能状态图

用户登录主要代码如下:

2.2 地震事件管理

工作信息、任务信息都与特定地震相关联。用户在登录系统后,首先要选择当前要响应的地震,才能进行信息上报和任务管理。

管理员具备地震事件管理权限,可以创建地震事件,更新地震列表,用户在列表中选择地震事件,进行后续响应。选定地震后,在首页的地震信息栏中,除显示地震的震级、发震位置、发震时间外,还通过自动抓取当前位置信息,实时更新与地震的直线距离。为便于现场人员迅速赶往震中,系统设计了一键导航功能,自动将震中位置作为目标点,规划导航路线。

2.3 信息共享

信息共享功能提供了一个现场各类信息汇聚和访问的通道,充分考虑了现场工作的紧迫性,最大程度降低用户填报信息的工作量。系统同时设计了震时和平时两套信息共享渠道,既可用于震后的应急响应,也可用于平时现场技术系统的运行、更新、维护等方面的工作信息报送。

系统根据各个组别的任务分工,设计不同信息上报模板。点击“信息上报”,系统会根据用户所在的组别,自动进入相应的上报页面。进入上报页面后,系统将用户个人信息、组别信息等登录状态信息自动填入相关字段; 通过JSBridge 调用Native 功能接口,获取当前经纬度数据,该经纬度为GCJ-02 坐标系,为便于后期在ArcGIS 等软件中加载处理,小程序端将GCJ-02 坐标自动转换为WGS-84 坐标,两种坐标一并上传到云端保存;获取经纬度坐标后,调用腾讯位置服务接口,获得当前参考位置;调用天气API 接口,将参考位置作为参数传入,获得当前地区的天气情况。用户填写工作信息,选择现场照片,连同系统自动抓取的信息,一起上报到云端。照片经过压缩后上传,节省了数据流量。信息上报的状态如图6所示。

图6 信息上报功能状态图

位置获取主要代码如下

上报信息保存在云端,用户通过输入上报时间、上报地区、相关地震、上报内容等查询条件,查询所需要的信息。信息以JSON 字符串的形式返回小程序端,在“信息详情”页面上解析显示。如果信息包含图片,则通过File ID 访问云端存储,在小程序端下载并显示图片。

地震应急处置过程通过本系统详尽记录,留存了一份重要的档案资料,震后每个阶段发生了什么、哪些单位哪些人做了哪些事、任务是否按要求完成……在云端都有记录。如果要组织新闻报道,或者工作总结,都可以按需查询。为便于信息使用,系统设计了将查询信息导出为Excel 文档的功能。鉴于小程序客户端有存储空间限制,本系统通过上传部署云函数,在云端实现了自动鉴权访问数据库和产出查询结果的Excel 文档,Excel 文档的一行对应数据库中的一条记录。产出的Excel 文档保存在云端存储,小程序端通过File ID 获取资源,可以直接保存到手机存储,也可以生成下载链接,分享给其他用户,或者通过电脑端下载。

云函数中生成Excel 的主要代码如下:

2.4 任务管理

任务列表分所有任务、已完成任务、未完成任务3 个标签页分类显示,并且显示每个任务状态。指挥员可以创建任务、设定任务时限、选择任务流向、指定工作组完成任务。任务下达后,指定工作组的所有人员都会接到通知,在任务列表中显示已下达的任务。在任务执行过程中,如果需要沟通协调,可以在任务详情页面中进行交流,一个任务详情页面就相当于一个任务主题的聊天室。完成交办任务后进行回复,系统自动计算任务是否超时,为后期的工作考核提供客观依据。

2.5 通知公告

对于需要广播周知的内容,管理员可以创建并发布通知公告。通知公告除了可以发布文字信息,还可以添加文件、图片等附件,是地震现场动态信息的发布窗口。

3 系统应用

2020年8月,系统开发基本完成,在山东省地震局的日常工作中进行了试运行。山东是少震省份,缺少真实地震响应,故以日常演练为契机,对系统各功能模块进行了测试。

在2020年8月、10月、12月的常规演练中,通过本系统设置了地震事件,启动地震应急响应。现场应急指挥车机动到距离驻地100 km 之外的济南市莱芜区,进行应急技术保障工作。

以10月26日的演练为例,选择地震事件后,在首页显示了当前地震相关信息,并不断更新与震中的直线距离(图7)。在任务管理界面中,每个任务都有任务状态标识(图8)。首先受领12 时31 分下达的2 h 内机动至莱芜区预定地域的任务(图9)。13 时50 分,抵达预定地域,回复任务,状态更新,任务状态显示“已完成”、“未超时”。在任务处置过程中,随时在“任务详情”汇报工作进展。

图7 系统首页

图8 任务列表

图9 任务详情

演练中的工作信息通过“信息上报”模块进行上报,系统自动选择“现场应急技术组”上报模板。在上报页面中,上报人、位置、天气等信息都是自动获取的,上报时只需要专注于上报内容的填写(图10)。点击上报后,上报是否成功有明确反馈。上报信息保存在云端,系统用户共享该信息。在“信息查询”页面,通过设置起始时间、上报人组别等查询条件进行查询(图11),返回2020年10月26日演练记录列表(图12)。点击下方的“导出Excel”按钮,将云端数据库里的演练信息导出为Excel,并下载到本地。点击信息列表,进入信息详情,详细显示了上报的文字、图片信息,以及上报位置和震中位置(图13)。为防止个别用户上报无关或者有害信息,管理员具备信息管理权限,可以甄别删除上报信息。

图10 信息上报

图11 信息查询

图12 信息列表

图13 信息详情

在演练中,也模拟发布了通知公告(图14)。管理员在微信小程序客户端即可编辑通知、添加附件,便于在地震现场操作。通知发布后,所有用户接收到消息提醒。通知详情页面采用了大家熟悉的WEB 页面布局,通知内容、附件等排版清晰,阅读方便。

图14 通知列表

演练信息通过本系统导出为Excel 文件后,在ArcGIS 中进行了加载,将经度、纬度字段作为X、Y坐标,展布到底图上,震中位置、信息上报位置一目了然,是一个非常好的工作总结和展示(图15)。

图15 演练信息制图

4 结束语

地震现场各工作队由于来自不同单位,相互之间缺少了解和默契,在地震现场工作中的信息畅通就显得尤为重要。本文基于微信小程序,设计了一套地震现场信息管理系统,通过信息共享、任务管理、通知公告等功能模块,实现了地震现场的信息融合,增强了地震现场工作的协同性。本系统还需在后期的实际应用中不断反馈需求,修改完善,真正发挥其信息融合平台的作用。

猜你喜欢

云端页面微信
刷新生活的页面
四海心连·云端汇聚
答案
让Word同时拥有横向页和纵向页
在云端永生
云端之城
微信
微信
在云端
微信