李成亮 姚偉
摘要:在醫(yī)院信息系統(tǒng)中,后關(guān)系型數(shù)據(jù)庫Cache以高效的性能而得到廣泛應(yīng)用。詳細(xì)介紹了對醫(yī)院藥品字典的醫(yī)囑項別名進(jìn)行模糊查詢的四種方法。采用一種計算查詢時間的方法對其執(zhí)行效率進(jìn)行了測試,并且結(jié)合每種方法的特性,分析了四種方法的優(yōu)缺點,給出了每種查詢方法的應(yīng)用場合,為cache數(shù)據(jù)庫模糊查詢提供了參考。
關(guān)鍵詞:Cache;后關(guān)系型數(shù)據(jù)庫;模糊查詢;方法研究
中圖分類號:TP311
文獻(xiàn)標(biāo)志碼:A
文章編號:1006-8228(2017)01-51-04
0引言
醫(yī)院信息化的發(fā)展提高了醫(yī)院的工作效率、強化了醫(yī)院的管理水平、簡化了醫(yī)療的流程步驟,直接反映了醫(yī)院醫(yī)療水平的現(xiàn)代化程度。InterSystems公司研發(fā)的“后關(guān)系型”數(shù)據(jù)庫(Post-Relational Database)Cach6將對象數(shù)據(jù)庫訪問、高性能的sQL訪問、強大的多維數(shù)據(jù)訪問這三種方法融為一體,具有比關(guān)系型數(shù)據(jù)庫更高的性能、更大的擴(kuò)展性、更快的編程能力。
為了提高醫(yī)生查詢藥品字典的效率,通常會在醫(yī)囑項上建立“拼音碼”形式的別名以方便模糊檢索。本文詳細(xì)介紹了對醫(yī)囑項別名進(jìn)行模糊查詢的四種方法,通過測試,對這四種方法的執(zhí)行效率進(jìn)行分析,并且結(jié)合每種方法的特征,總結(jié)了四種方法的優(yōu)缺點,給出了每種查詢方法的應(yīng)用場合,以期為Cache數(shù)據(jù)庫模糊查詢提供參考。
1.簡單模糊查詢的方法
1.1SQL語句使用通配符
格式為:SELECT<列>FROM<表>WHERE<字段名>LIKE<條件>。
sQL語句是—種雙重性語言,包括交互式SQL和嵌入式sQL。本文分別采用了這兩種形式進(jìn)行模糊查詢。
1.2字符串比較運算符的使用
格式為:<多維數(shù)據(jù)>[<入?yún)?gt;。
含義是:若<多維數(shù)據(jù)>包含<入?yún)?gt;,則返回為True;否則為Falseo
Cache數(shù)據(jù)庫以多維數(shù)據(jù)結(jié)構(gòu)形式存儲,開發(fā)者可以采用對象、表格、或者多維數(shù)組進(jìn)行建模。本文采用多維數(shù)組的方式,采用字符串比較運算符“[”,將多維數(shù)組中的數(shù)據(jù)與入?yún)⒈容^,若包含入?yún)ⅲ磳崿F(xiàn)模糊查詢。
例如:醫(yī)囑名稱為胸腰椎后路創(chuàng)傷釘棒系統(tǒng)(四釘二棒一橫聯(lián))一橫聯(lián)(天津正天),醫(yī)囑別名為XYZHLCSDBXT,入?yún)閄Y。
因“XYZHLCSDBXT”[“XY”,故可以通過XY模 糊檢索出該醫(yī)囑。
2.藥品字典醫(yī)囑項別名的簡單模糊查詢
2.1藥品字典的形式
藥品字典的表名為:PHYZPmCheGL.User.Fuzzy-Query,各字段名分別為:“FQRowlD”、“DocAd”、“Do-cAdAlias”、“UnitPrice”、“Unit”、“DocAdCode”。在“FQRowlD”字段建立主索引、拼音碼形式的醫(yī)囑項別名“DocAdAlias”字段建立索引。
2.2簡單模糊查詢的實現(xiàn)方法
在Cach6數(shù)據(jù)庫中對醫(yī)囑項別名進(jìn)行“拼音碼”的模糊查詢,具體的實現(xiàn)方法如表l所示。
本文分別對藥品字典10000條、150000條數(shù)據(jù)進(jìn)行模糊查詢測試,隨機(jī)抽取兩位、三位拼音碼在類方法TestQuery()中進(jìn)行測試,其結(jié)果如表2、表3所示(單位:毫秒)。
從表2中可以得出:在數(shù)據(jù)量較小的情形下,四種方法執(zhí)行所用時間相差不大。
從表3中可以得出:方法三執(zhí)行效率最高,方法四執(zhí)行效率最低。方法一執(zhí)行效率低于方法二。
結(jié)合各種方法的形式特征,歸納出不同模糊查詢方法的優(yōu)缺點,如表4所示。
2.4模糊查詢方法的應(yīng)用場合分析
在數(shù)據(jù)量大、需要進(jìn)行業(yè)務(wù)邏輯運算、實時事務(wù)處理過程情形下,適宜采用系統(tǒng)類%Query提供的方法,巧妙利用Cach6 ObjectScript語言中的字符串比較運算符“[”快速地進(jìn)行模糊查詢,即方法三。
在僅需進(jìn)行模糊查詢時,可以采用Cach6類中預(yù)先定義并封裝好的sQL語句,即方法二。
在一般情形下,可以選用游標(biāo)或者面向?qū)ο蟮哪:樵兎椒?,即方法一或方法四?結(jié)論
藥品字典的醫(yī)囑項名稱通常比較長,并且為了記憶方便,一個醫(yī)囑項名稱一般會維護(hù)多個醫(yī)囑項別名。為提高醫(yī)生檢索的快速性、準(zhǔn)確性,本文詳細(xì)介紹了四種模糊查詢的方法,并對每種方法的執(zhí)行效率進(jìn)行了測試分析,可以得出以下結(jié)論。
(1)方法一、二、四本質(zhì)都是采用sQL語句,方法三根據(jù)Cach6數(shù)據(jù)庫數(shù)據(jù)存儲的特性,采用字符串比較運算符“[”進(jìn)行模糊查詢,其效率優(yōu)于使用SQL語句。
(2)在復(fù)雜情形下,可以結(jié)合這四種查詢方法的優(yōu)勢,靈活地加以混合運用。
在實際使用過程中,采用方法三進(jìn)行模糊查詢,因其執(zhí)行效率較高而普遍被醫(yī)生所認(rèn)可,可推廣直接使用多維數(shù)組進(jìn)行業(yè)務(wù)邏輯處理的方法。