劉怡
摘 ? 要:全文檢索引擎技術(shù)是指利用計算機程序,將文章中所有詞組建立與之相對應的索引,用戶進行查詢時,可以根據(jù)索引將查找結(jié)果快速傳遞給用戶的檢索方式。本文結(jié)合全文檢索引擎技術(shù)的基本步驟,通過對Lucene技術(shù)、Ajax技術(shù)、Struts技術(shù)在電子病歷中的應用研究,以提高臨床數(shù)據(jù)的利用效率。
關鍵詞:全文檢索引擎技術(shù) ?電子病歷 ?數(shù)據(jù)
中圖分類號:G354.49 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼:A ? ? ? ? ? ? ? ? ? ? ? 文章編號:1674-098X(2019)02(b)-0138-02
電子病歷是將病人所有的醫(yī)療記錄(包括紙張病歷)通過電子設備進行存儲、管理、傳輸?shù)南到y(tǒng)。傳統(tǒng)電子病歷存儲方式相對分散,并且很多信息不能作為檢索條件,降低了醫(yī)療數(shù)據(jù)的利用效率。全文檢索引擎技術(shù)可以將病歷信息進行統(tǒng)一轉(zhuǎn)換,使檢索信息更加全面,為病歷管理工作提供更加便捷的服務。
1 ?全文檢索引擎技術(shù)的基本步驟
1.1 數(shù)據(jù)采集
數(shù)據(jù)采集是將準備加載到數(shù)據(jù)庫中的相關數(shù)據(jù)進行收集,并按照標準進行數(shù)據(jù)分類,為數(shù)據(jù)預處理做準備[1]。所加載的數(shù)據(jù)可以通過多種途徑獲得,就電子病歷而言,常見的數(shù)據(jù)來源有:人工錄入建庫、電腦生成的文件、圖文處理后得到的文件、計算機上傳的文件等。
1.2 數(shù)據(jù)預處理
數(shù)據(jù)來源的不同造成獲得數(shù)據(jù)格式的多種多樣,對此需要對數(shù)據(jù)進行格式規(guī)范化處理,方便數(shù)據(jù)檢索;在規(guī)范數(shù)據(jù)格式后,進行文本的預處理,將文本中的詞組進行批式標引,使其在檢索時不會受到數(shù)據(jù)庫結(jié)構(gòu)的影響,提高檢索效率;在進行批示標引后,對文本中數(shù)據(jù)添加屬性標引,使數(shù)據(jù)分類更加清晰。
1.3 數(shù)據(jù)庫建立
將整理好的數(shù)據(jù)通過拷貝、輸入等方式加載至數(shù)據(jù)庫中。數(shù)據(jù)庫建立的過程中,可以選擇單篇加載或批量加載兩種方式。單篇加載與文獻上傳方式類似,一次只加載一篇文章;批量方式可以單次加載多篇,適用于數(shù)據(jù)數(shù)量較多,需要集中加載的情況。
1.4 數(shù)據(jù)檢索和維護
數(shù)據(jù)庫在建立之后,用戶可以利用系統(tǒng)的檢索功能對數(shù)據(jù)庫中數(shù)據(jù)進行檢索,通過關鍵詞搜索獲得所需的重要信息。數(shù)據(jù)庫在建立之后需要對數(shù)據(jù)內(nèi)容進行不定時更新,添加新的屬性標引或數(shù)據(jù)信息。
2 ?全文檢索引擎技術(shù)在電子病歷中的應用
2.1 Lucene技術(shù)
2.1.1 Lucene的組成結(jié)構(gòu)
第一,語言分析器。由org.apache.lucene.analysis語言分析包構(gòu)成,主要用于抽象類切詞Analyzer的管理,按照切分詞規(guī)則進行數(shù)據(jù)庫中文本內(nèi)容類別的劃分;第二,文檔存儲管理結(jié)構(gòu)。由org.apache.lucene.document數(shù)據(jù)包構(gòu)成,該數(shù)據(jù)包類別較少,主要用于Field信息的儲存。Document屬于Field的子機構(gòu),是為了方便存儲Field相關數(shù)據(jù)而構(gòu)建的管理結(jié)構(gòu);第三,數(shù)據(jù)索引管理結(jié)構(gòu)。由org.apache.lucene.index索引包構(gòu)成,主要負責索引信息的建立和刪除。索引管理結(jié)構(gòu)屬于Lucene檢索系統(tǒng)的核心組成,用戶在檢索時,不需要了解所有正文內(nèi)容,只需要了解基本索引信息就可以完成檢索,提升了檢索效率[2]。第四,數(shù)據(jù)查詢分析結(jié)構(gòu)。由org.apache.lucene.queryParser數(shù)據(jù)包組成,用戶在進行檢索時,該結(jié)構(gòu)對用戶所提供的關鍵詞進行詞組間信息關系判定,執(zhí)行與、或、非等相關判定;第五,檢索管理結(jié)構(gòu)。由org.apache.lucene.search包組成,根據(jù)數(shù)據(jù)查詢分析結(jié)構(gòu)所提供的分析結(jié)果,檢索管理結(jié)構(gòu)進行數(shù)據(jù)庫中對應屬性文章的匹配,并在檢索結(jié)果處進行展示;第六,存儲管理結(jié)構(gòu)。由org.apache.lucene.store組成,在完成一次檢索之后,該結(jié)構(gòu)對檢索結(jié)果進行存儲管理,不定時進行數(shù)據(jù)庫數(shù)據(jù)補充,使數(shù)據(jù)庫數(shù)據(jù)信息更加全面。
2.1.2 Lucene在電子病歷中的實際應用
首先,建立索引機制。Lucene將電子病歷中的所有內(nèi)容添加到數(shù)據(jù)庫中,將文本中內(nèi)容進行定義和劃分,使其能夠劃分成多個字段;在組建過程中,需要對劃分好的多字段文本進行切詞處理,處理規(guī)則參照org.apache.lucene.analysis語言分析包規(guī)則進行;將切分后的詞組添加到索引機制當中,方便查詢時使用。其關鍵代碼如下:IndexWriterwriter=newIndexWriter(通過索引機制建立新的檢索機制);FileInputStreamis=newFileInputStream(確定Document對象);writer.addDocument(doc)(將文本內(nèi)容寫入索引機制)。
其次,用戶進行檢索。用戶在進行電子病歷查詢時,確定查詢條件,并通過運算分析詞組間關系。如用戶需要查詢“腎臟”和“泌尿系統(tǒng)”相關的記錄,可以輸入“腎臟、泌尿系統(tǒng)”來進行查詢。分析器在接到關鍵詞時,對詞組進行切詞處理,并判定兩者存在“與”的關系,核心系統(tǒng)得到的查詢條件為“腎臟”與“泌尿系統(tǒng)”。根據(jù)此條件進行索引機制中相關內(nèi)容的查詢。
最后,用戶得到檢索結(jié)果。關鍵詞在索引機制查詢過程中,利用contents字段進行數(shù)據(jù)庫內(nèi)容搜索,所有的搜索結(jié)果利用path字段進行輸出,實現(xiàn)信息的快速檢索。
2.2 Ajax技術(shù)
2.2.1 Ajax技術(shù)的工作原理
Ajax(Asynchronous JavascriptAndXML)是借助交互式網(wǎng)絡應用的異步通信技術(shù)[3]。用戶在進行檢索時,Ajax技術(shù)類似于在客戶端與服務器中添加了中間環(huán)節(jié),使服務器響應時間與用戶操作時間異步化。對于部分用戶請求,Ajax可以利用自身系統(tǒng)進行解決,減少用戶等待時間。如果出現(xiàn)新問題,Ajax會代替用戶向服務器提交申請,提高用戶體驗度。
2.2.2 Ajax技術(shù)在電子病歷中的應用
第一,建立XML Http Request。利用Internet Explorer 將目標對象ActiveX對象進行引入,以此構(gòu)建XML Http。受到不同Internet Explorer的影響,為了實現(xiàn)多版本瀏覽器中XML Http的兼容性,需要仔細分析不同XML Http特性,創(chuàng)建XML Http Request類。使用戶在進行檢索時,不會受到XML Http影響造成檢索失敗。而創(chuàng)建XML Http Request類的主要代碼如下:xmlhttp--request = new XML Http Request()。
第二,根據(jù)檢索內(nèi)容編寫響應函數(shù)。服務器在接受到用戶請求時,Http需要明確用戶請求需要使用哪種類型Java Script響應函數(shù)進行處理。在實際操作過程中,可以將待處理對象屬性進行分類,并把待處理對象的on ready stste change標記成Java Script響應函數(shù)的名稱,使請求能夠得到準確處理。
第三,將目標對象請求進行發(fā)送。在定義目標對象請求處理方式之后,采用Http中open()與send()兩種請求類方法進行服務器請求。
第四,服務器接收到服務請求后,相應函數(shù)開始進行數(shù)據(jù)處理分析,在處理過程中,函數(shù)會檢查Http服務器此時相應的狀態(tài)值,在確定其處于正常工作狀態(tài)后,進行處理后數(shù)據(jù)的顯示。
2.3 Struts技術(shù)
2.3.1 Struts技術(shù)工作原理
Struts技術(shù)是借助Sun J2EE平臺所構(gòu)成的Model-View-Controller(模型-視圖-控制器)框架。Struts技術(shù)在使用過程中通過Servlet 和JSP技術(shù)進行數(shù)據(jù)分析,并將分析結(jié)果利用平臺進行呈現(xiàn),以此實現(xiàn)電子病歷相關信息的快速檢索。
2.3.2 Struts技術(shù)在電子病歷中的應用
第一,構(gòu)建Struts Web目錄。根據(jù)電子病歷數(shù)據(jù)庫類型進行目錄路徑構(gòu)建。如WEB-INF 、classes等;第二,數(shù)據(jù)填充。將電子病歷中所有的數(shù)據(jù)和Struts 各個API庫中的文件考入既定的Web程序當中。對于Struts 中已經(jīng)標注的文件,將數(shù)據(jù)信息拷貝至指定路徑當中,提高數(shù)據(jù)庫中數(shù)據(jù)信息總量;第三,編寫源文件。將數(shù)據(jù)庫中的信息進行編寫,篩選出提示錯誤的信息,將現(xiàn)有信息進行規(guī)范化處理,利用MVC框架將規(guī)范化的信息進行匹配;第四,處理請求信息。Struts在接收到用戶請求時,利用數(shù)據(jù)分析原則進行切詞,將其劃分為不同單元(最小為兩個字節(jié)),并且利用函數(shù)對處理后詞組關系進行判定;第五,處理請求。在接收到Struts處理的數(shù)據(jù)請求后,根據(jù)相關規(guī)則,進行數(shù)據(jù)信息匹配,使用戶得到想要的數(shù)據(jù)信息。其主要運行代碼為:和
3 ?結(jié)語
綜上所述,Lucene技術(shù)可以提高信息檢索速度,Ajax技術(shù)可以進行數(shù)據(jù)檢索分流,提高用戶體驗度,Struts技術(shù)可以加快數(shù)據(jù)庫構(gòu)建速度,減少維護費用。將全文檢索引擎技術(shù)應用在電子病歷中,對于提高檢索速度、提升信息獲取精確度有著重要意義。
參考文獻
[1] 魯曦.基于Lucene的購物網(wǎng)站商品全文檢索功能的設計與實現(xiàn)[D].北京工業(yè)大學,2018.
[2] 趙景越,徐松青,蔡連忠.全文檢索引擎技術(shù)在電子病歷中的應用[J].數(shù)字技術(shù)與應用,2018(12):89-90.
[3] 徐財應.基于Lucene的搜索引擎技術(shù)的研究與改進[D].長春理工大學,2018.