苏峥嵘
摘 要: 残疾人作为社会的一个特殊群体,对其如何管理、服务历来为政府所重视。传统的管理模式在数字化席卷全球的今天,日益显现出低效、粗糙的缺点。基于互联网和开放式数据平台技术的新一代管理平台日益迫切。以虚拟卡为核心的新一代残疾人智能管理系统是以移动互联网为基础,借助于二维码、数据库技术,实现对残疾人进行身份识别、信息收集管理、行为轨迹分析、建立群体社区等动作,有利于行政管理部门对这一特定群体精准帮扶,为其充分享受社会福利,实现残疾人的“平等、参与、共享”权力,提供技术支持。
关键词: 开放式数据平台;虚拟卡;二维码
1 目前的状态
随着信息技术的不断发展,也给残疾人事业信息化建设带来了新的机遇和挑战。作为公民,残疾人在政治、经济、文化和社会生活的各方面,应该享有与其他公民一样的平等的权利。国家“十一五”规划明确指出积极发展残疾人事业是整个社会和谐发展的一项重要事务。现代信息技术应用于广大残疾人生活的地方——基层社区,将是残疾人服务管理工作信息化建设重中之重。利用信息手段开拓为残疾人服务的渠道,解决他们生活、学习、就业、维权、脱贫等多方面的困难,推进残疾人事业信息化建设向更高层次发展,应是政府和社会高度重视、亟待解决的重大问题,建设一个高效、准确的残疾人服务管理系统已成为当前的迫切需要。
目前通过残疾证、IC卡等手段对残疾人进行管理和服务,明显效率低下,可靠程度不高,应用场景受限。随着基于互联网和开放式数据平台技术的新一代管理技术日趋成熟,以提高整体工作水平和工作效率为目的,加快残疾人办公服务和管理信息化,已是大势所趋。借助于移动终端、二维码、数据库技术,实现对残疾人进行身份识别、信息收集管理、行为轨迹分析、建立群体社区、监督投诉等操作,有利于行政管理部门对这一特殊群体精准帮扶,使其充分享受社会福利,实现残疾人“平等、参与、共享”的权力。
2 基于开放式数据平台实现对残疾人管理服务的解决方案
随着移动互联网的普及和服务应用的深化,利用开放式数据平台实现对残疾人管理服务成为可能。开放式数据平台是为了满足各级组织、机构、企业对于数据的需要而产生的。其海量数据存储、不间断数据流实时计算等特点,为应用场景的顺利实施提供了基本保证。本例中使用了中残联残疾人信息库,也就是残联为残疾人提供“量体裁衣”式个性化服务的量服系统和百度地图。
正是有了这些开放式数据平台,利用手机客户端应用程序,使得在残疾人服务管理领域,完全替代原来的残疾证(卡)服务模式,实现基于互联网开放式数据平台的新模式——虚拟卡模式成为可能。该模式使用二维条码/二维码(dimensional barcode)技术,在身份认证、数据管理等环节,提高了可靠性,便利性,同时也保护了使用者的隐私。
虚拟卡(Virtual Card):相对于残疾人管理所使用的第一代卡(纸媒卡)和第二代卡(IC卡),第三代卡虚拟卡借助于计算机网络技术、数字媒体技术、数据库技术等手段,利用个人移动终端(手机),实现在线身份认证、信息管理、投诉监督等操作,而且本方案立足于个体,建立管理机构与个体、个体与个体间的密切联系,通过网络实时管理用户,实现为残疾人提供更优质的服务。
二维条码/二维码(dimensional barcode)技术,是使用若干个与二进制相对应的几何形体来表示文字、数值信息,通过图象输入设备或光电扫描设备自动识读,实现信息处理。一个二维码由多行组成,一般有3-90行,每一行有一个起始部分、数据部分、终止部分,是一个多行、连续性、可变长、包含大量数据的符号标识。常用的码制有:Data Matrix,Maxi Code,Aztec,QR Code,Vericode,PDF417,Ultracode,Code 49,Code 16K等。其字符集包括所有128个字符,最大数据含量是1850个字符。不需要连接一个数据库,本身可存储大量数据,主要应用于:物料管理、身份认证等需要快速查询的环境。现有的移动终端(如手机、平板电脑等),均能快速扫描识别,现已大量使用在识别、支付等环节。
2.1 虚拟卡模式的设计思路
系统实现残疾人基本信息及虚拟卡信息管理、录入、查询,自动生成残疾证虚拟卡信息签发及注销等,方便残疾人进行残疾证迁移工作或在非户籍地享受政策工作,统计残疾人信息生成多维度报表,满足管理上对于残疾人信息统计分类的要求。残疾人通过移动客户端对虚拟卡注册申领后,系统后台对残疾人状态变更进行动态管理,如提供行为轨迹、消费偏好、活动区域、服务喜好等信息,进而为残疾人提供更优质的服务。另外,就业培训工作也是当前残疾人管理服务工作中的一个重点,管理好残疾人就业培训档案尤为重要。对于残疾人就业来说,要建立残疾人求职信息档案,推荐就业人员档案、已就业残疾人档案、未就业残疾人档案等等,详细了解每一个残疾朋友的情况,从而有针对性的开展残疾人培训,帮助他们早日实现就业。
系统设计目标:
(1)高效的管理残疾人虚拟卡及残疾人基本信息。
(2)通过移动客户端残疾人虚拟卡二维码可快速直接了解残疾人信息,使用方便。
使用方便快捷,上手简单,数据安全保证。
2.2 虚拟卡模式的功能
2.2.1 身份证识别
(1)管理残疾人基本信息及虚拟卡信息,虛拟卡管理、录入、查询等基本功能;
(2)管理残疾人虚拟卡信息,根据残疾人三代证情况或最新评定情况,自动生成、签发或注销残疾证虚拟卡信息,同时生成个人专属二维码,并且提供残疾证虚拟卡的数据录入、识别功能。
在二维码的选择上,由于QR码(由DENSO(日本电装)公司开发,由JIS和ISO将其标准化)随着移动终端,特别是国内移动支付系统的使用,使其得到迅猛发展,变得非常流行,其比传统的Bar Code条形码能存更多的信息,同时也能表示更多的数据类型:比如:字符,数字,日文,中文等。故本例中采用这一编码方案。
QR码有(Model)和版本(Version)两要素。模式分为Model1和Model2两种,Model1是对QR的初始定义,Model2是对Model1的扩展,目前使用较为普遍的是Model2,本例中也采用Model2。
QR图的大小(size)被定义为版本(Version),版本号从1到40。版本1就是一个21*21的矩阵,每增加一个版本号,矩阵的大小就增加4个模块(Module),因此,版本40就是一个177*177的矩阵。(版本越高,意味着存储的内容越多,纠错能力也越强)。
每个QR码符号由名义上的正方形模块构成,组成一个正方形阵列,它由编码区域和包括寻象图形、分隔符、定位图形和校正图形在内的功能图形组成。功能图形不能用于数据编码。符号的四周由空白区包围。下图为QR码版本7符号的结构图。
//生成二维码
KeyId = model.KeyId;
if (string.IsNullOrEmpty(model.qrcode))
{
qrcode=QRCode.Generate("http://"+ HttpContext.Current.Request.Url.Host + "/CLindex/QRCodeView.aspx?KeyID=" + KeyId, @"CLindex\\images\\logo_1.png", model.identNum);
SqlEasy.ExecuteNonQuery("update CLUserInfo set qrcode='" + qrcode + "' where KeyId=" + KeyId);
model.qrcode = qrcode;
}
//QRCode类和Generate创建二维码方法
using NetWing.BPM.Core.WeChatApi;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using ZXing;
using ZXing.Common;
using ZXing.QrCode.Internal;
namespace NetWing.BPM.Core
{
public class QRCode
{
///
/// 生成帶Logo的二维码
///
/// 链接
/// logo地址
/// 文件夹名
public static string Generate(string url, string LogoPath, string PathUrl)
{
//Logo 图片
String path = AppDomain.CurrentDomain.BaseDirectory + LogoPath;
Bitmap logo = new Bitmap(@path);
//构造二维码写码器
MultiFormatWriter writer = new MultiFormatWriter();
Dictionary
hint.Add(EncodeHintType.CHARACTER_SET, "UTF-8");
hint.Add(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
//生成二维码
BitMatrix bm = writer.encode(url, BarcodeFormat.QR_CODE, 300, 300, hint);
BarcodeWriter barcodeWriter = new BarcodeWriter();
Bitmap map = barcodeWriter.Write(bm);
//获取二维码实际尺寸(去掉二维码两边空白后的实际尺寸)
int[] rectangle = bm.getEnclosingRectangle();
//计算插入图片的大小和位置
int middleW = Math.Min((int)(rectangle[2] / 3.5), logo.Width);
int middleH = Math.Min((int)(rectangle[3] / 3.5), logo.Height);
int middleL = (map.Width - middleW) / 2;
int middleT = (map.Height - middleH) / 2;
//将img转换成bmp格式,否则后面无法创建Graphics对象
Bitmap bmpimg = new Bitmap(map.Width, map.Height, PixelFormat.Format32bppArgb);
using (Graphics g = Graphics.FromImage(bmpimg))
{
g.InterpolationMode= System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.SmoothingMode= System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.CompositingQuality= System.Drawing.Drawing2D.CompositingQuality.HighQuality;
g.DrawImage(map, 0, 0);
}
//将二维码插入图片
Graphics myGraphic = Graphics.FromImage(bmpimg);
//白底
myGraphic.FillRectangle(Brushes.White,middleL,middleT, middleW, middleH);
myGraphic.DrawImage(logo,middleL, middleT, middleW, middleH);
//保存成图片
string SavePath = AppDomain.CurrentDomain.BaseDirectory;
//string dated = DateTime.Now.ToString("yyyyMMdd");
string dates = DateTime.Now.ToString("yyyyMMddHHmmssfff");
string SavePathUrl = @"Upload/QRCode/" + PathUrl + @"/";
if (!string.IsNullOrEmpty(SavePath))
{
SavePath += @"Upload\\QRCode\\" + PathUrl + @"\\";
if (!Directory.Exists(SavePath))
{
Directory.CreateDirectory(SavePath);
}
SavePath += dates + "_" + Operation.Number(6) + ".png";
SavePathUrl += dates + "_" + Operation.Number(6) + ".png";
bmpimg.Save(@SavePath, ImageFormat.Png);
}
return SavePathUrl;
}
}
}
2.2.2 發卡管理
(1)提供外部使用用户界面功能,如残疾人可通过智能手机输入手机号注册残疾人虚拟卡,系统通过与中残联残疾人信息库进行对接,对符合条件的残疾人进行认证及虚拟卡发卡管理;
(2)具备行政区划调整、享受政策地区调整功能,方便残疾人进行残疾证迁移工作或在非户籍地享受政策工作;
(3)报表生成,残疾人三代证卡管理系统以时间点作为横向维度、以多个查询项目为纵向维度,残联各级机构能够查看残疾个人在整个业务生命周期中所有业务信息(包括了社会保障享受情况、就失业情况、康复训练情况等等);
(4)以此收集和统计残疾人应用信息来定制统计查询报表,满足管理上对残疾人信息统计分类要求。
2.2.3 卡动态管理
(1)残疾人通过移动客户端对虚拟卡注册申领后,系统后台对残疾人状态变更进行动态管理,例如对残疾人迁移、死亡、残疾等级变化等信息进行实时管理;
(2)通过系统平台后续为残疾人提供的量服(市残联为残疾人提供“量体裁衣”式个性化服务简称:量服)及社会化等服务,通过大数据动态跟踪残疾人的行为轨迹,分析出残疾人的服务喜好、消费偏好、活动区域等信息,进而为残疾人提供更优质的服务。