李春林,劉建輝,周根鴻,張文體
利用二代身份證讀卡技術(shù)快速建立患者主索引
李春林,劉建輝,周根鴻,張文體
目的:探討利用身份證讀卡技術(shù),快速建立患者主索引。方法:利用二代身份證讀卡器實(shí)現(xiàn)對(duì)身份證內(nèi)信息的讀取,通過編寫接口程序,將患者的基本信息寫入數(shù)據(jù)庫。結(jié)果:掛號(hào)處采集患者信息時(shí)做到了數(shù)據(jù)項(xiàng)目采集全面、準(zhǔn)確、快速,減少了排隊(duì)現(xiàn)象,提高了建立患者主索引的采集效率及準(zhǔn)確率。結(jié)論:采用二代身份證讀卡技術(shù),有利于快速建立患者主索引。
二代身份證;射頻識(shí)別;醫(yī)院信息系統(tǒng)
患者來醫(yī)院就診,對(duì)其基本信息的采集必不可少。掛號(hào)時(shí)需要填寫患者的相關(guān)項(xiàng)目信息,為后續(xù)科室提供基本數(shù)據(jù)準(zhǔn)備。但由于我院醫(yī)院信息系統(tǒng)掛號(hào)時(shí)需要在錄入界面上逐項(xiàng)錄入患者的相關(guān)項(xiàng)目信息,加上操作員操作熟練程度不夠或者患者提供信息時(shí)表述不準(zhǔn)確等原因,登記患者基本信息時(shí)存在錄入時(shí)間長、錄入不完整、出錯(cuò)率高等問題,經(jīng)常出現(xiàn)錄錯(cuò)患者姓名、出生日期、身份證號(hào)和地址等現(xiàn)象。在辦理醫(yī)保、新農(nóng)合、保險(xiǎn)理賠等業(yè)務(wù)過程中,逐項(xiàng)錄入患者信息給記賬、數(shù)據(jù)上傳、報(bào)銷帶來很多問題,同時(shí)也給患者和醫(yī)院都帶來很多麻煩,甚至造成一些不必要的醫(yī)療糾紛。身份證作為公民的法定證件,具有覆蓋范圍廣、持有使用率高、個(gè)人信息記錄準(zhǔn)確的特點(diǎn)。患者主索引的建立在醫(yī)院信息系統(tǒng)中是個(gè)重要環(huán)節(jié)。如果在醫(yī)院的就診掛號(hào)環(huán)節(jié)中通過使用身份證讀卡器讀取身份證中的內(nèi)容,寫入醫(yī)院后臺(tái)數(shù)據(jù)庫,從而為患者建立主索引,既能避免差錯(cuò),又能做到快速準(zhǔn)確,節(jié)省患者排隊(duì)等待時(shí)間。隨著軍隊(duì)數(shù)字化衛(wèi)勤和數(shù)字化醫(yī)院建設(shè)的推進(jìn),研究更適合現(xiàn)代化醫(yī)院管理需要的信息技術(shù)顯得非常重要[1-2]。
1.1 身份證讀卡器原理
身份證讀卡技術(shù)主要是通過射頻識(shí)別(radio frequency identification,RFID)技術(shù)來實(shí)現(xiàn)的。RFID技術(shù)利用無線射頻方式在閱讀器和射頻卡之間進(jìn)行非接觸雙向數(shù)據(jù)傳輸,以達(dá)到目標(biāo)志別和數(shù)據(jù)交換的目的。與傳統(tǒng)的條形碼、磁卡及IC卡相比,射頻卡具有非接觸、閱讀速度快、無磨損、不受環(huán)境影響、壽命長、便于使用的特點(diǎn),并具有防沖突功能,能同時(shí)處理多張卡片[3]。最基本的RFID系統(tǒng)由閱讀器、電子標(biāo)簽(即射頻卡)和天線3部分組成。系統(tǒng)的基本工作原理是:閱讀器通過發(fā)射天線發(fā)送一定頻率的射頻信號(hào),當(dāng)射頻卡進(jìn)入發(fā)射天線工作區(qū)域時(shí)產(chǎn)生感應(yīng)電流,射頻卡獲得能量被激活;射頻卡將自身編碼等信息通過卡內(nèi)置發(fā)送天線發(fā)送出去;系統(tǒng)接收天線接收到從射頻卡發(fā)送來的載波信號(hào),經(jīng)天線調(diào)節(jié)器傳送到閱讀器,閱讀器對(duì)接收的信號(hào)進(jìn)行解調(diào)和解碼,然后送到后臺(tái)主系統(tǒng)進(jìn)行相關(guān)處理。二代身份證使用非接觸式IC卡芯片作為存儲(chǔ)器。芯片存儲(chǔ)容量大,寫入的信息可劃分安全等級(jí),分區(qū)存儲(chǔ),按照管理需要授權(quán)讀寫,也可以將變動(dòng)信息(如住址變動(dòng))追加寫入。芯片使用特定的邏輯加密算法,芯片和電路線圈在證卡內(nèi)封裝,能夠保證證件在各種環(huán)境下正常使用,壽命在10 a以上,被公認(rèn)為21世紀(jì)十大重要技術(shù)之一[4]。其正常閱讀距離不小于5 cm,平均無故障時(shí)間不小于5 000 h[5]。我國規(guī)定,居民身份證登記的項(xiàng)目包括:姓名、性別、民族、出生日期、常住戶口所在地住址、公民身份證號(hào)碼、本人相片、指紋信息、證件的有效期和簽發(fā)機(jī)關(guān)等10項(xiàng)信息(參見《中華人民共和國居民身份證法第三條》)。
1.2 二代身份證的基本數(shù)據(jù)格式
二代身份證號(hào)碼從每位公民出生到死亡都是唯一不變的,不會(huì)因戶口遷移、工作變更等原因而發(fā)生變化。身份證號(hào)碼完全可以作為醫(yī)院就醫(yī)卡、醫(yī)療保險(xiǎn)卡的信息基礎(chǔ),從而避免“一人多號(hào),一人多卡”現(xiàn)象的發(fā)生[6]。公安部已經(jīng)嚴(yán)格制定了二代身份證的信息存儲(chǔ)格式[7],見表1。
表1 二代身份證數(shù)據(jù)格式
對(duì)于醫(yī)院來說,利用上述內(nèi)容建立患者的主索引信息完全可滿足要求。
2.1 程序編寫
我院二代身份證讀卡系統(tǒng)由二代身份證讀卡器和接口軟件組成。讀卡器負(fù)責(zé)讀取二代身份證中的信息,接口軟件負(fù)責(zé)將讀取的信息保存到“軍衛(wèi)一號(hào)”系統(tǒng)中。接口軟件是根據(jù)醫(yī)院“軍衛(wèi)一號(hào)”系統(tǒng)專門設(shè)計(jì)開發(fā)的。
2.2 硬件準(zhǔn)備
目前,市場(chǎng)上有非常多的身份證讀卡器產(chǎn)品,我們選取某公司生產(chǎn)的DAQ-A16D作為我們本研究的使用產(chǎn)品。
2.3 連接設(shè)備
將DAQ-A16D讀卡器接入前端計(jì)算機(jī)USB接口上,安裝有關(guān)驅(qū)動(dòng)。利用PowerBuilder 9.0作為接口程序開發(fā)工具,在接口程序中調(diào)用有關(guān)動(dòng)態(tài)API函數(shù)。
2.4 動(dòng)態(tài)庫函數(shù)應(yīng)用
購買產(chǎn)品時(shí)一般都提供了免費(fèi)的軟件開發(fā)工具包(software development kit,SDK)(二次開發(fā)工具包)。SDK包含下列動(dòng)態(tài)庫文件 Syn_IDCardRead.dll、Syn_IDCardRead.lib、Syn_IDCardRead.h、sdtapi.dll、WltRS.dll。動(dòng)態(tài)庫SynIDCardAPI.Dll中提供了二次開發(fā)的API接口函數(shù)。
2.4.1 最大通信字節(jié)數(shù)設(shè)定
通過函數(shù)Syn_SetMaxRFByte實(shí)現(xiàn),參數(shù)說明:iPort[in]整數(shù),表示端口號(hào);ucByte[in]無符號(hào)字符,24-255,表示射頻適配器最大通信字節(jié)數(shù);iIfOpen [in]整數(shù),非0表示在API函數(shù)內(nèi)部包含了打開端口和關(guān)閉端口函數(shù),0表示在API函數(shù)內(nèi)部不包含打開端口和關(guān)閉端口函數(shù)。返回值意義:0表示成功;返回值為其他表示失敗。
2.4.2 判斷找卡是否成功
通過函數(shù)Syn_StartFindIDCard實(shí)現(xiàn),參數(shù)說明:iPort[in]整數(shù),表示端口號(hào)。pucIIN[out]無符號(hào)字符指針,指向讀到的IIN。iIfOpen[in]整數(shù)。返回值意義:0表示找卡成功;0x80表示找卡失敗。
2.4.3 判斷選卡是否成功
通過函數(shù)Syn_SelectIDCard實(shí)現(xiàn),參數(shù)說明:i-Port[in]整數(shù),表示端口號(hào)。pucSN[out]無符號(hào)字符指針,指向讀到的SN。iIfOpen[in]整數(shù)。返回值意義:0表示選卡成功;0x81表示選卡失敗。
2.4.4 判斷端口是否打開成功
通過函數(shù)Syn_OpenPort實(shí)現(xiàn),參數(shù)說明:iPort [in]整數(shù),表示端口號(hào)。返回值意義:0表示打開端口成功;0x01表示打開端口失敗或端口號(hào)不合法。
2.4.5 判斷端口是否關(guān)閉成功
通過函數(shù)Syn_ClosePort實(shí)現(xiàn),參數(shù)說明:iPort [in]整數(shù),表示端口號(hào)。返回值意義:00表示關(guān)閉端口成功;0x01表示端口號(hào)不合法。
2.4.6 讀卡內(nèi)信息至結(jié)構(gòu)體
通過函數(shù)Syn_ReadMsg實(shí)現(xiàn),參數(shù)說明:iPort [in]整數(shù),表示端口號(hào)。iIfOpen[in]整數(shù),pIDCardData[out]IDCardData類型讀出的數(shù)據(jù)。返回值意義:0表示成功;返回值為其他值表示錯(cuò)誤。
2.5 具體編程實(shí)現(xiàn)(僅提供關(guān)鍵代碼)
2.5.1 函數(shù)調(diào)用聲明
函數(shù)使用前都要進(jìn)行聲明,才能使用里面的功能。如:
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 結(jié)構(gòu)體聲明
定義一個(gè)與身份證信息相一致的結(jié)構(gòu)體。
typedef struct tagIDCardData{
char Name[32];//姓名
char Sex[4];//性別
char Nation[6];//民族
char Born[18];//出生日期
char Address[72];//住址
char IDCardNo[38];//身份證號(hào)
char GrantDept[32];//發(fā)證機(jī)關(guān)
char UserLifeBegin[18];//有效開始日期
char UserLifeEnd[18];//有效截止日期
char reserved[38];//保留
char PhotoFileName[255];//照片路徑
}IDCardData;
2.5.3 讀卡內(nèi)信息至結(jié)構(gòu)體
以下語句是將卡內(nèi)信息讀至前面定義的結(jié)構(gòu)體中,為插入記錄提供數(shù)據(jù)。
………
nRet=Syn_ReadMsg(iPort,0,m_IDCardData);//讀卡至結(jié)構(gòu)體
2.5.4 創(chuàng)建患者主索引
得到讀卡內(nèi)容后,寫入后臺(tái)數(shù)據(jù)庫的患者主索引表。
insert into pat_master_index//系統(tǒng)主索引記錄表
(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 主索引查重
為了判斷患者是否有重復(fù)的主索引,必須進(jìn)行查重。
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號(hào)為"+patidold+",姓名為"+nameold)
end if
3.1 重號(hào)問題
這里說的重號(hào)問題要注意2種現(xiàn)象:(1)身份證本身的重號(hào)問題,就是2個(gè)人的身份證號(hào)碼重號(hào)時(shí),要從編程上進(jìn)行判斷,當(dāng)然這種2個(gè)人身份證重號(hào)又同時(shí)來醫(yī)院掛號(hào)的情況幾乎不可能發(fā)生,但是一旦有這種情況出現(xiàn)要能識(shí)別處理。(2)同一人來醫(yī)院掛號(hào)每次都用不同的ID號(hào),造成一人多號(hào)。從理論上來說,醫(yī)院的ID號(hào)碼資源可以允許一人多號(hào),但是從目前的就醫(yī)過程來看,我們要避免這種現(xiàn)象發(fā)生,一是保護(hù)ID號(hào)碼資源,二是醫(yī)療過程的需要,如果某個(gè)人每次的ID號(hào)碼不一樣,造成個(gè)人醫(yī)療病歷資料的分散存儲(chǔ),檢索困難,對(duì)醫(yī)院和個(gè)人都不利。因此,在編程時(shí)應(yīng)該考慮同一身份證重復(fù)掛號(hào)的問題,也就是當(dāng)某個(gè)患者第二次來院就診時(shí),能夠利用身份證讀卡時(shí)快速調(diào)出上次信息,而不需重新建立索引。
3.2 自動(dòng)合并
對(duì)原有信息項(xiàng)目建立不全的患者主索引在讀卡
(????)(????)過程中要能自動(dòng)識(shí)別是否為同一人。我們認(rèn)為,只要姓名、性別、出生日期、出生地4項(xiàng)信息完全一致時(shí)應(yīng)該考慮為同一人,當(dāng)然還要加上人工的問詢。為了考慮節(jié)省ID號(hào)碼資源,只補(bǔ)登缺項(xiàng)信息,而不重新分配ID號(hào)。
3.3 預(yù)留參數(shù)日后備用
普通身份證讀卡器除了指紋信息不能讀取外,其他信息都可以一次性全部讀取,但是我們并沒有對(duì)每項(xiàng)信息進(jìn)行存取。如照片信息、證件有效期等只是前端計(jì)算機(jī)可以顯示,作為相關(guān)判斷用,并無保存至后臺(tái)數(shù)據(jù)庫的必要,只是為以后使用預(yù)留相應(yīng)的參數(shù)。
身份證讀卡系統(tǒng)自運(yùn)行以來,經(jīng)過不斷改進(jìn),門診掛號(hào)采集患者基本信息的效率大大提高,從原來的平均錄入每個(gè)患者需要40 s左右時(shí)間,縮短為不到2 s,提高了20倍的效率,基本信息采集的準(zhǔn)確率達(dá)100%。隨著醫(yī)院就診人數(shù)的增加和就診實(shí)名制的要求,二代身份證讀卡系統(tǒng)既減少了工作人員的工作量,又縮短了患者排隊(duì)等候的時(shí)間,取得了較好的使用效果。目前,醫(yī)保、新農(nóng)合、保險(xiǎn)等行業(yè)要求都需要實(shí)名制,使用二代身份證讀卡技術(shù)還可以有效杜絕騙保、冒名頂替現(xiàn)象的發(fā)生。由于我院門診掛號(hào)系統(tǒng)系軍內(nèi)統(tǒng)一配置軟件,此次未能直接嵌入掛號(hào)系統(tǒng),如果以后能直接嵌入將更加方便操作人員。
[1]張雁耿.實(shí)施數(shù)字化衛(wèi)勤工程 引領(lǐng)我軍衛(wèi)勤戰(zhàn)略轉(zhuǎn)型[J].人民軍醫(yī),2011,54(4):259-262.
[2]劉運(yùn)成.軍隊(duì)數(shù)字化醫(yī)院建設(shè)總體構(gòu)想[J].人民軍醫(yī),2011,54(8):740-742.
[3]林培通.無線射頻識(shí)別(RFID)技術(shù)的應(yīng)用[J].電腦知識(shí)與技術(shù),2011,7(20):5 011-5 012.
[4]李蓓,盧朝陽.基于射頻識(shí)別技術(shù)的電子報(bào)到系統(tǒng)[J].計(jì)算機(jī)應(yīng)用,2012,32(S1):221-223.
[5]GA 450—2003 臺(tái)式居民身份證閱讀器通用技術(shù)要求[S].
[6]李訓(xùn)棟,肖寶菊.醫(yī)院信息系統(tǒng)數(shù)據(jù)管理探討[J].醫(yī)療衛(wèi)生裝備,2013,34(1):49-50.
[7]吳貞東,曾德勝,許小波.二代身份證智能采集器研究與開發(fā)[J].微計(jì)算機(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—),男,主任,主任技師,主要從事醫(yī)院信息管理及信息系統(tǒng)開發(fā)方面的研究工作,E-mail:lcl588@sina.com。
410006長沙,武警湖南省總隊(duì)醫(yī)院信息科(李春林,劉建輝,周根鴻,張文體)