文档库 最新最全的文档下载
当前位置:文档库 › 利用二代身份证读卡技术快速建立病人主索引

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

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

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

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

①武警湖南总队医院信息科,410006,湖南省长沙市枫林一路222号

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

关键词二代身份证射频识别医院信息系统

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

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

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

定,居民身份证登记的项目包括:姓名、性别、民族、出生日期、常住户口所在地住址、公民身份号码、本人相片、指纹信息、证件的有效期和签发机关等10项信息[6]。

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

表一二代身份证数据格式

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

2 实现过程

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

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

2.3 连接设备将DAQ-A16D读卡器接入前端电脑USB接口上,安装有关驱动。利用PB 9作为接口程序开发工具,在接口程序中调用有关动态API函数。

2.4 动态库函数应用购买产品时一般都提供了免费的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实现,参数说明: iPort[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 );//读卡至结构体

if nRet = 0 then

ll_used = Cpu() - ll_start;

sMsg = String(Now(), "YYYY-MM-DD hh:mm:ss") + " 读卡成功,读卡时间" + String(ll_used) + "ms"

lb_1.AddItem(sMsg)

sMsg = String(Now(), "YYYY-MM-DD hh:mm:ss") + " 姓名:" + m_https://www.wendangku.net/doc/2418712847.html,

lb_1.AddItem(sMsg)

sMsg = String(Now(), "YYYY-MM-DD hh:mm:ss") + " 性别:" + m_IDCardData.Sex

lb_1.AddItem(sMsg)

………

else

sMsg = String(Now(), "YYYY-MM-DD hh:mm:ss") + " 读卡失败,nRet=" +

String(nRet)

lb_1.AddItem(sMsg)

end if

else

sMsg = String(Now(), "YYYY-MM-DD hh:mm:ss") + " 打开端口失败"

lb_1.AddItem(sMsg)

end if

Syn_ClosePort( iPort );//关闭端口

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_numbe

r_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 重号问题这里说的重号问题要注意两种现象。第一种情况是身份证本身的重号问题,就是两个人的身份证号码重号时,要从编程上进行判断,当然这种两个人身份证重号又同

时来医院挂号的情况几乎不发生,但是一旦有这种情况要能识别处理。第二种情况是同一

人来医院挂号每次都用不同的ID号,造成一人多号。从理论上来说,医院的ID号码资源可以允许一人多号,但是从目前的就医过程来看,我们要避免这种现象发生,一是保护ID号码资源,二是医疗过程的需要,如果某个人每次的ID号码不一样,造成个人医疗病历资料的分散存储,检索困难,于医院和个人都不利,因此在编程时应该考虑同一身份证重复挂

号的问题,也就是当某个病人第二次来院就诊时,能够利用身份证读卡时快速调出上次信息,而不需重新建立索引。

3.2 自动合并对原有信息项目建立不全的患者主索引在读卡过程中要能自动识别是否为同一人,我们认为只要姓名、性别、出生日期、出生地四项信息完全一致时应该考虑为同一人,当然还要加上人工的问询,为了考虑节省ID号码资源,只补登缺项信息,也不重新分配ID 号。

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

4 总结与展望

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

参考文献

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

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

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

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

[5]GA450-2003台式居民身份证阅读器通用技术要求.

[6]中华人民共和国居民身份证法.第三条[S].2011-10-29.

[7]李毓忠,陆敏,温剑.应用二代身份证优化医院信息系统的流程[J].医疗卫生装

备,2011,32(05):82-93.

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

相关文档