APP下载

利用二代身份证读卡技术快速建立患者主索引

2014-03-24李春林刘建辉周根鸿张文体

医疗卫生装备 2014年10期
关键词:端口号读卡读卡器

李春林,刘建辉,周根鸿,张文体

利用二代身份证读卡技术快速建立患者主索引

李春林,刘建辉,周根鸿,张文体

目的:探讨利用身份证读卡技术,快速建立患者主索引。方法:利用二代身份证读卡器实现对身份证内信息的读取,通过编写接口程序,将患者的基本信息写入数据库。结果:挂号处采集患者信息时做到了数据项目采集全面、准确、快速,减少了排队现象,提高了建立患者主索引的采集效率及准确率。结论:采用二代身份证读卡技术,有利于快速建立患者主索引。

二代身份证;射频识别;医院信息系统

0 引言

患者来医院就诊,对其基本信息的采集必不可少。挂号时需要填写患者的相关项目信息,为后续科室提供基本数据准备。但由于我院医院信息系统挂号时需要在录入界面上逐项录入患者的相关项目信息,加上操作员操作熟练程度不够或者患者提供信息时表述不准确等原因,登记患者基本信息时存在录入时间长、录入不完整、出错率高等问题,经常出现录错患者姓名、出生日期、身份证号和地址等现象。在办理医保、新农合、保险理赔等业务过程中,逐项录入患者信息给记账、数据上传、报销带来很多问题,同时也给患者和医院都带来很多麻烦,甚至造成一些不必要的医疗纠纷。身份证作为公民的法定证件,具有覆盖范围广、持有使用率高、个人信息记录准确的特点。患者主索引的建立在医院信息系统中是个重要环节。如果在医院的就诊挂号环节中通过使用身份证读卡器读取身份证中的内容,写入医院后台数据库,从而为患者建立主索引,既能避免差错,又能做到快速准确,节省患者排队等待时间。随着军队数字化卫勤和数字化医院建设的推进,研究更适合现代化医院管理需要的信息技术显得非常重要[1-2]。

1 身份证读卡技术简要介绍

1.1 身份证读卡器原理

身份证读卡技术主要是通过射频识别(radio frequency identification,RFID)技术来实现的。RFID技术利用无线射频方式在阅读器和射频卡之间进行非接触双向数据传输,以达到目标志别和数据交换的目的。与传统的条形码、磁卡及IC卡相比,射频卡具有非接触、阅读速度快、无磨损、不受环境影响、寿命长、便于使用的特点,并具有防冲突功能,能同时处理多张卡片[3]。最基本的RFID系统由阅读器、电子标签(即射频卡)和天线3部分组成。系统的基本工作原理是:阅读器通过发射天线发送一定频率的射频信号,当射频卡进入发射天线工作区域时产生感应电流,射频卡获得能量被激活;射频卡将自身编码等信息通过卡内置发送天线发送出去;系统接收天线接收到从射频卡发送来的载波信号,经天线调节器传送到阅读器,阅读器对接收的信号进行解调和解码,然后送到后台主系统进行相关处理。二代身份证使用非接触式IC卡芯片作为存储器。芯片存储容量大,写入的信息可划分安全等级,分区存储,按照管理需要授权读写,也可以将变动信息(如住址变动)追加写入。芯片使用特定的逻辑加密算法,芯片和电路线圈在证卡内封装,能够保证证件在各种环境下正常使用,寿命在10 a以上,被公认为21世纪十大重要技术之一[4]。其正常阅读距离不小于5 cm,平均无故障时间不小于5 000 h[5]。我国规定,居民身份证登记的项目包括:姓名、性别、民族、出生日期、常住户口所在地住址、公民身份证号码、本人相片、指纹信息、证件的有效期和签发机关等10项信息(参见《中华人民共和国居民身份证法第三条》)。

1.2 二代身份证的基本数据格式

二代身份证号码从每位公民出生到死亡都是唯一不变的,不会因户口迁移、工作变更等原因而发生变化。身份证号码完全可以作为医院就医卡、医疗保险卡的信息基础,从而避免“一人多号,一人多卡”现象的发生[6]。公安部已经严格制定了二代身份证的信息存储格式[7],见表1。

表1 二代身份证数据格式

对于医院来说,利用上述内容建立患者的主索引信息完全可满足要求。

2 实现过程

2.1 程序编写

我院二代身份证读卡系统由二代身份证读卡器和接口软件组成。读卡器负责读取二代身份证中的信息,接口软件负责将读取的信息保存到“军卫一号”系统中。接口软件是根据医院“军卫一号”系统专门设计开发的。

2.2 硬件准备

目前,市场上有非常多的身份证读卡器产品,我们选取某公司生产的DAQ-A16D作为我们本研究的使用产品。

2.3 连接设备

将DAQ-A16D读卡器接入前端计算机USB接口上,安装有关驱动。利用PowerBuilder 9.0作为接口程序开发工具,在接口程序中调用有关动态API函数。

2.4 动态库函数应用

购买产品时一般都提供了免费的软件开发工具包(software development kit,SDK)(二次开发工具包)。SDK包含下列动态库文件 Syn_IDCardRead.dll、Syn_IDCardRead.lib、Syn_IDCardRead.h、sdtapi.dll、WltRS.dll。动态库SynIDCardAPI.Dll中提供了二次开发的API接口函数。

2.4.1 最大通信字节数设定

通过函数Syn_SetMaxRFByte实现,参数说明:iPort[in]整数,表示端口号;ucByte[in]无符号字符,24-255,表示射频适配器最大通信字节数;iIfOpen [in]整数,非0表示在API函数内部包含了打开端口和关闭端口函数,0表示在API函数内部不包含打开端口和关闭端口函数。返回值意义:0表示成功;返回值为其他表示失败。

2.4.2 判断找卡是否成功

通过函数Syn_StartFindIDCard实现,参数说明:iPort[in]整数,表示端口号。pucIIN[out]无符号字符指针,指向读到的IIN。iIfOpen[in]整数。返回值意义:0表示找卡成功;0x80表示找卡失败。

2.4.3 判断选卡是否成功

通过函数Syn_SelectIDCard实现,参数说明:i-Port[in]整数,表示端口号。pucSN[out]无符号字符指针,指向读到的SN。iIfOpen[in]整数。返回值意义:0表示选卡成功;0x81表示选卡失败。

2.4.4 判断端口是否打开成功

通过函数Syn_OpenPort实现,参数说明:iPort [in]整数,表示端口号。返回值意义:0表示打开端口成功;0x01表示打开端口失败或端口号不合法。

2.4.5 判断端口是否关闭成功

通过函数Syn_ClosePort实现,参数说明:iPort [in]整数,表示端口号。返回值意义:00表示关闭端口成功;0x01表示端口号不合法。

2.4.6 读卡内信息至结构体

通过函数Syn_ReadMsg实现,参数说明:iPort [in]整数,表示端口号。iIfOpen[in]整数,pIDCardData[out]IDCardData类型读出的数据。返回值意义:0表示成功;返回值为其他值表示错误。

2.5 具体编程实现(仅提供关键代码)

2.5.1 函数调用声明

函数使用前都要进行声明,才能使用里面的功能。如:

function int Syn_SetMaxRFByte(int iPort,int ucByte,int bIfOpen)library"SynIDCardAPI.Dll"

function int Syn_OpenPort(int iPort)library" SynIDCardAPI.Dll"

……

2.5.2 结构体声明

定义一个与身份证信息相一致的结构体。

typedef struct tagIDCardData{

char Name[32];//姓名

char Sex[4];//性别

char Nation[6];//民族

char Born[18];//出生日期

char Address[72];//住址

char IDCardNo[38];//身份证号

char GrantDept[32];//发证机关

char UserLifeBegin[18];//有效开始日期

char UserLifeEnd[18];//有效截止日期

char reserved[38];//保留

char PhotoFileName[255];//照片路径

}IDCardData;

2.5.3 读卡内信息至结构体

以下语句是将卡内信息读至前面定义的结构体中,为插入记录提供数据。

………

nRet=Syn_ReadMsg(iPort,0,m_IDCardData);//读卡至结构体

2.5.4 创建患者主索引

得到读卡内容后,写入后台数据库的患者主索引表。

insert into pat_master_index//系统主索引记录表

(patient_id,inp_no,name,name_phonetic,sex,date_ of_birth,birth_place,citizenship,nation,id_no,identity, charge_type,unit_in_contract,mailing_address,phone_ number_home,next_of_kin,relationship,next_of_kin_ phone,last_visit_date,vip_indicator,create_date,operator)values

(:new_pat_id,:new_inp_no,:new_name,:new_ name_phone,:new_sex,:new_birth_date,:new_birth_ place,:new_country_code,:new_nation,:new_id_no,: new_identity,:new_charger,:new_unit_code,:new_address,:new_telephone,:new_next_kin,:new_relation,: new_next_kin_tel,sysdate,2,sysdate,:user_names);

2.5.5 主索引查重

为了判断患者是否有重复的主索引,必须进行查重。

select count(*)into:nums from pat_master_index where id_no=:idno;

if nums〉0 then

select patient_id,name into:patidold,:nameold from pat_master_index where id_no=:idno;

messagebox("提示","此人已建主索引"+"登记的ID号为"+patidold+",姓名为"+nameold)

end if

3 讨论

3.1 重号问题

这里说的重号问题要注意2种现象:(1)身份证本身的重号问题,就是2个人的身份证号码重号时,要从编程上进行判断,当然这种2个人身份证重号又同时来医院挂号的情况几乎不可能发生,但是一旦有这种情况出现要能识别处理。(2)同一人来医院挂号每次都用不同的ID号,造成一人多号。从理论上来说,医院的ID号码资源可以允许一人多号,但是从目前的就医过程来看,我们要避免这种现象发生,一是保护ID号码资源,二是医疗过程的需要,如果某个人每次的ID号码不一样,造成个人医疗病历资料的分散存储,检索困难,对医院和个人都不利。因此,在编程时应该考虑同一身份证重复挂号的问题,也就是当某个患者第二次来院就诊时,能够利用身份证读卡时快速调出上次信息,而不需重新建立索引。

3.2 自动合并

对原有信息项目建立不全的患者主索引在读卡

(▶▶▶▶)(◀◀◀◀)过程中要能自动识别是否为同一人。我们认为,只要姓名、性别、出生日期、出生地4项信息完全一致时应该考虑为同一人,当然还要加上人工的问询。为了考虑节省ID号码资源,只补登缺项信息,而不重新分配ID号。

3.3 预留参数日后备用

普通身份证读卡器除了指纹信息不能读取外,其他信息都可以一次性全部读取,但是我们并没有对每项信息进行存取。如照片信息、证件有效期等只是前端计算机可以显示,作为相关判断用,并无保存至后台数据库的必要,只是为以后使用预留相应的参数。

4 结语

身份证读卡系统自运行以来,经过不断改进,门诊挂号采集患者基本信息的效率大大提高,从原来的平均录入每个患者需要40 s左右时间,缩短为不到2 s,提高了20倍的效率,基本信息采集的准确率达100%。随着医院就诊人数的增加和就诊实名制的要求,二代身份证读卡系统既减少了工作人员的工作量,又缩短了患者排队等候的时间,取得了较好的使用效果。目前,医保、新农合、保险等行业要求都需要实名制,使用二代身份证读卡技术还可以有效杜绝骗保、冒名顶替现象的发生。由于我院门诊挂号系统系军内统一配置软件,此次未能直接嵌入挂号系统,如果以后能直接嵌入将更加方便操作人员。

[1]张雁耿.实施数字化卫勤工程 引领我军卫勤战略转型[J].人民军医,2011,54(4):259-262.

[2]刘运成.军队数字化医院建设总体构想[J].人民军医,2011,54(8):740-742.

[3]林培通.无线射频识别(RFID)技术的应用[J].电脑知识与技术,2011,7(20):5 011-5 012.

[4]李蓓,卢朝阳.基于射频识别技术的电子报到系统[J].计算机应用,2012,32(S1):221-223.

[5]GA 450—2003 台式居民身份证阅读器通用技术要求[S].

[6]李训栋,肖宝菊.医院信息系统数据管理探讨[J].医疗卫生装备,2013,34(1):49-50.

[7]吴贞东,曾德胜,许小波.二代身份证智能采集器研究与开发[J].微计算机信息,2007,23(20):190-191,280.

(收稿:2013-11-25 修回:2014-02-21)

Rapid establish of patient master index by second-generation ID card reading technology

LI Chun-lin,LIU Jian-hui,ZHOU Gen-hong,ZHANG Wen-ti
(Information Department,Hunan Provincial Corps Hospital of CAPF,Changsha 410006,China)

ObjectiveTo establish rapidly the patient master index by ID card reading technology.MethodsThe secondgeneration ID card reader and self-developed interface program were used to input the basic information of the patient into the database.ResultsThe registration section could acquire the patient data completely,accurately and rapidly,and the efficiency and accuracy of establishing the patient master index were both enhanced greatly.ConclusionThe secondgeneration ID card reading technology helps to rapidly construct the patient master index.[Chinese Medical Equipment Journal,2014,35(10):59-61,90]

second-generation ID card;radio frequency identification;hospital information system

R318;TP311.1

A

1003-8868(2014)10-0059-04

10.7687/J.ISSN1003-8868.2014.10.059

李春林(1969—),男,主任,主任技师,主要从事医院信息管理及信息系统开发方面的研究工作,E-mail:lcl588@sina.com。

410006长沙,武警湖南省总队医院信息科(李春林,刘建辉,周根鸿,张文体)

猜你喜欢

端口号读卡读卡器
煤矿井下车辆乘人防漏识别读卡基站设计
智能会议预约终端内置读卡器性能的改善*
与淘汰命运抗争 看懂笔记本的读卡器
在Docker容器中安装应用程序
雷诺科雷傲车无法起动
浅谈以java为基础的Socket通信简介及实现
基于EMV非接通信规范的非接触读卡器设计
多合一读卡器
为二维码识别的献礼之作——评测平治二维码门禁读卡器
Winsock编程在《计算机网络基础》教学中的应用