李成亮 姚偉



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