陸曉野
(右江民族醫(yī)學(xué)院,廣西 百色 533000)
隨著信息化技術(shù)的發(fā)展,我國(guó)大多數(shù)三甲醫(yī)院的信息化水平都比較高,電子病歷系統(tǒng)[1-2]已經(jīng)被應(yīng)用于臨床一線(xiàn)多年,而且運(yùn)行比較穩(wěn)定和成熟,對(duì)于不同的科室、不同的臨床應(yīng)用場(chǎng)景,都有對(duì)應(yīng)的規(guī)范化的電子病歷模板[3-4],但是每種電子病歷模板的項(xiàng)目繁多,如果通過(guò)手動(dòng)一項(xiàng)一項(xiàng)逐一核對(duì)錄入,既費(fèi)時(shí)又費(fèi)力,而且容易出錯(cuò)或者遺漏[5-6]。美國(guó)醫(yī)學(xué)會(huì)(AMA)的統(tǒng)計(jì)數(shù)據(jù)表明[7],病歷及與之相關(guān)的文案書(shū)寫(xiě)占據(jù)醫(yī)護(hù)人員所有工作時(shí)間的15%~20%,對(duì)于實(shí)習(xí)期的醫(yī)護(hù)人員,這一數(shù)字更是高達(dá)30%。據(jù)調(diào)查,目前部分三甲醫(yī)院的電子病歷系統(tǒng)已經(jīng)具有語(yǔ)音錄入功能,但是功能比較單一,應(yīng)用層次較低,面對(duì)項(xiàng)目繁多的電子病歷模板,需要人工手動(dòng)一項(xiàng)一項(xiàng)定位光標(biāo)到相應(yīng)的病歷項(xiàng)目,才能語(yǔ)音錄入,遠(yuǎn)遠(yuǎn)沒(méi)有達(dá)到智能化錄入的水平,實(shí)際自動(dòng)化應(yīng)用程度并不高[5]。因此,有效提高電子病歷信息錄入的智能化水平,省去醫(yī)生煩瑣錄入電子病歷信息的過(guò)程,是當(dāng)下亟須研究和解決的問(wèn)題,也是醫(yī)學(xué)發(fā)展和構(gòu)建新型醫(yī)療服務(wù)體系的需要。
在當(dāng)前已有的研究和應(yīng)用中,將語(yǔ)音識(shí)別技術(shù)應(yīng)用于電子病歷的相關(guān)研究很多,但是相關(guān)研究?jī)H局限于將語(yǔ)音轉(zhuǎn)換成文本的研究,沒(méi)有涉及從語(yǔ)音錄入的文本病歷信息中挖掘關(guān)鍵病歷信息與電子病歷表單項(xiàng)匹配對(duì)接的研究,導(dǎo)致語(yǔ)音錄入病歷的智能化程度不高。因此,針對(duì)智能化水平欠缺的問(wèn)題,研究設(shè)計(jì)基于索引目錄從語(yǔ)音錄入的文本中提取關(guān)鍵病歷信息的文本挖掘算法,快速、準(zhǔn)確、自動(dòng)地提取關(guān)鍵病歷信息,與電子病歷的表單項(xiàng)匹配對(duì)接,實(shí)現(xiàn)智能語(yǔ)音錄入,旨在幫助醫(yī)護(hù)人員解決煩瑣的病歷錄入問(wèn)題,提高臨床的智能化水平,具有現(xiàn)實(shí)的研究意義和研究?jī)r(jià)值,為相似領(lǐng)域的研究提供參考。
基于索引目錄的病歷信息文本挖掘算法,首先,醫(yī)護(hù)人員通過(guò)語(yǔ)音識(shí)別軟件語(yǔ)音錄入電子病歷信息,并生成文本形式的病歷信息;然后,根據(jù)索引目錄,有針對(duì)性地從文本形式的病歷信息中挖掘出關(guān)鍵的病歷信息;最后,把挖掘出的關(guān)鍵病歷信息自動(dòng)填入電子病歷界面中對(duì)應(yīng)的表單項(xiàng)目,以實(shí)現(xiàn)智能化語(yǔ)音錄入電子病歷的功能。該算法主要包括的模塊有:索引目錄、文本病歷信息、挖掘關(guān)鍵病歷信息。
1)索引目錄。電子病歷系統(tǒng)包含眾多規(guī)范化的電子病歷表單錄入界面,每張表單都有各自的病歷信息錄入項(xiàng)目。當(dāng)醫(yī)護(hù)人員點(diǎn)擊進(jìn)入電子病歷系統(tǒng)某張表單的病歷信息錄入界面時(shí),算法會(huì)根據(jù)當(dāng)前錄入界面的表單項(xiàng)目自動(dòng)生成對(duì)應(yīng)的索引目錄,索引目錄包含該錄入界面的所有表單項(xiàng)目,是該錄入界面表單項(xiàng)目的全集。各項(xiàng)索引目錄的名稱(chēng),根據(jù)表單各項(xiàng)項(xiàng)目的名稱(chēng)來(lái)命名,類(lèi)似如:心率、血氧、收縮壓、舒張壓、體溫等詞語(yǔ),一般是醫(yī)學(xué)的官方名稱(chēng)或者簡(jiǎn)稱(chēng),也是醫(yī)護(hù)人員的習(xí)慣用語(yǔ)。索引目錄的形式,如圖1所示。

圖1 索引目錄
2)文本病歷信息。醫(yī)護(hù)人員通過(guò)麥克風(fēng)語(yǔ)音錄入電子病歷信息,則語(yǔ)音識(shí)別軟件把語(yǔ)音信息轉(zhuǎn)換成文本的形式,形成文本病歷信息。醫(yī)護(hù)人員通過(guò)當(dāng)前錄入界面顯示的各項(xiàng)病歷信息的名稱(chēng)來(lái)錄入病歷信息,使得算法的設(shè)計(jì)更具有針對(duì)性,同時(shí)與該表單項(xiàng)目的索引目錄匹配對(duì)應(yīng),提高算法運(yùn)行的效率和準(zhǔn)確率。語(yǔ)音錄入電子病歷信息的方式是,先說(shuō)出具體的項(xiàng)目名稱(chēng),再說(shuō)出對(duì)應(yīng)的病歷信息,比如:“心率80”“血氧96”“收縮壓121”等,語(yǔ)音錄入各病歷項(xiàng)目時(shí),中間會(huì)有1~2秒的停頓,這樣語(yǔ)音識(shí)別軟件會(huì)在各病歷項(xiàng)目的信息之間加入逗號(hào),錄入較長(zhǎng)的病歷描述時(shí),根據(jù)中間的停頓或者文本的意思也會(huì)適當(dāng)加入逗號(hào)。當(dāng)語(yǔ)音錄入結(jié)束時(shí),說(shuō)出“完畢”,則文本病歷信息以“完畢”結(jié)尾。語(yǔ)音錄入電子病歷信息的文本形式,如圖2所示。

圖2 文本病歷信息
3)挖掘關(guān)鍵病歷信息。根據(jù)當(dāng)前電子病歷錄入界面的索引目錄,從語(yǔ)音錄入的文本病歷信息中,挖掘出每項(xiàng)索引目錄對(duì)應(yīng)的關(guān)鍵病歷信息,與電子病歷系統(tǒng)的表單項(xiàng)目進(jìn)行匹配,自動(dòng)把關(guān)鍵病歷信息填入相應(yīng)的表單項(xiàng)目中,完成智能語(yǔ)音錄入功能。對(duì)圖2中的文本病歷信息進(jìn)行挖掘,挖掘出的關(guān)鍵病歷信息,如圖3所示。
基于索引目錄的病歷信息文本挖掘算法,主要包含如下幾個(gè)步驟,算法的流程圖,如圖4所示。

圖4 算法流程圖
1)構(gòu)建索引目錄。當(dāng)醫(yī)護(hù)人員點(diǎn)擊進(jìn)入某個(gè)電子病歷的錄入界面時(shí),算法自動(dòng)搜索該錄入界面所包含的所有表單項(xiàng)目,根據(jù)表單項(xiàng)目的名稱(chēng)逐項(xiàng)生成對(duì)應(yīng)的索引目錄,最后進(jìn)行集成,構(gòu)建該電子病歷模板完整的索引目錄。
2)形成文本病歷信息。語(yǔ)音識(shí)別軟件將醫(yī)護(hù)人員語(yǔ)音錄入的電子病歷信息轉(zhuǎn)換成文本的形式,形成文本病歷信息。文本病歷信息以逗號(hào)來(lái)分隔,以“完畢”結(jié)尾。
3)分解文本病歷信息。算法根據(jù)文本病歷信息中的逗號(hào),對(duì)整個(gè)文本病歷信息進(jìn)行分解,把分解后的文本病歷信息逐項(xiàng)以字符串的形式存放到向量Vector。遍歷圖2 中的文本病歷信息,對(duì)文本進(jìn)行分解,得到分解后的文本病歷信息的形式,如圖5所示。

圖5 分解后的文本病歷信息
4)挖掘關(guān)鍵病歷信息。根據(jù)索引目錄,逐條遍歷存放文本病歷信息的向量Vector,如果某條病歷信息的前面幾個(gè)字符與索引目錄中的某一項(xiàng)索引名稱(chēng)相匹配,則創(chuàng)建一條新的鍵值對(duì),鍵是索引名稱(chēng),值是對(duì)應(yīng)的關(guān)鍵病歷信息,并存放到容器Map 中;如果該條病歷信息的前幾個(gè)字符沒(méi)有與索引目錄中的任何一項(xiàng)索引名稱(chēng)相匹配,則該條病歷信息屬于上一項(xiàng)索引目錄的病歷信息,追加存放到上一條Map鍵值對(duì)的值中,如圖3所示,其中,“主訴”“現(xiàn)病史”“既往史”“個(gè)人史”等索引目錄都包含多條病歷信息,后面的條目都需要追加到上一條病歷信息中。當(dāng)算法搜索到“完畢”時(shí),遍歷結(jié)束。
5)關(guān)鍵病歷信息填入電子病歷系統(tǒng)的表單項(xiàng)目。遍歷存放關(guān)鍵病歷信息的容器Map,用容器Map 的鍵與當(dāng)前錄入界面表單項(xiàng)目的名稱(chēng)進(jìn)行匹配,把匹配的鍵值自動(dòng)填入相應(yīng)的表單項(xiàng)目中,完成智能語(yǔ)音錄入。
算法采用C++程序設(shè)計(jì)語(yǔ)言進(jìn)行編寫(xiě)。索引目錄存放在向量Vector 中,變量命名為v_index;分解后的文本病歷信息也存放在向量Vector中,變量命名為v_text;而挖掘出的關(guān)鍵病歷信息,則以鍵值對(duì)的形式存放在容器Map中,變量命名為map_key。
在語(yǔ)音錄入的過(guò)程中,允許醫(yī)護(hù)人員對(duì)某一項(xiàng)已經(jīng)錄入的病歷信息進(jìn)行修改,只要再次語(yǔ)音錄入該項(xiàng)病歷信息即可,最新語(yǔ)音錄入的信息就會(huì)覆蓋原先的信息,算法只保存最后一次錄入的信息。針對(duì)這種情況,算法的實(shí)現(xiàn)細(xì)節(jié)是,在創(chuàng)建一條新的鍵值對(duì)之前,先遍歷當(dāng)前存放關(guān)鍵病歷信息的容器map_key,如果容器map_key 中已經(jīng)存在該鍵,則用最新的病歷信息去覆蓋該鍵對(duì)應(yīng)的值;如果容器map_key 中不存在該鍵,則把該條鍵值對(duì)插入到容器map_key中。
算法關(guān)鍵步驟的偽代碼,如圖6所示。

圖6 算法關(guān)鍵步驟的偽代碼
實(shí)驗(yàn)環(huán)境:實(shí)驗(yàn)使用日常生活中普通的電腦進(jìn)行模擬實(shí)驗(yàn),并不是在醫(yī)院電子病歷系統(tǒng)的真實(shí)環(huán)境中進(jìn)行的實(shí)驗(yàn)。
電腦配置:Intel Core i7-9700,內(nèi)存8GB,機(jī)械硬盤(pán)1TB,Windows 10系統(tǒng)。算法采用C++語(yǔ)言實(shí)現(xiàn),采用科大訊飛語(yǔ)音識(shí)別軟件。算法運(yùn)行期間,不運(yùn)行其他的應(yīng)用程序。
實(shí)驗(yàn)設(shè)計(jì):根據(jù)醫(yī)院電子病歷錄入的真實(shí)場(chǎng)景,設(shè)計(jì)一個(gè)電子病歷模板的錄入界面,同時(shí)準(zhǔn)備一份電子病歷信息的講稿。在一間無(wú)其他干擾的房間內(nèi),通過(guò)麥克風(fēng),用標(biāo)準(zhǔn)的普通話(huà)以正常的語(yǔ)速錄入講稿信息,即根據(jù)電子病歷模板的表單項(xiàng)目,模擬語(yǔ)音錄入電子病歷信息,觀察算法運(yùn)行的實(shí)驗(yàn)結(jié)果。
實(shí)驗(yàn)結(jié)果表明,算法運(yùn)行情況良好。算法的運(yùn)行效率比較高,錄入界面顯示出病歷信息的速度與語(yǔ)音錄入病歷信息基本上是同步的,因?yàn)楸敬螌?shí)驗(yàn)?zāi)M語(yǔ)音錄入的電子病歷信息的總字?jǐn)?shù)是237個(gè),這樣的總字?jǐn)?shù)不會(huì)給電腦的CPU 和內(nèi)存造成任何負(fù)擔(dān)。據(jù)前期調(diào)查,在醫(yī)院電子病歷錄入的真實(shí)場(chǎng)景中,大多數(shù)電子病歷信息的總字?jǐn)?shù)在150~350字,本實(shí)驗(yàn)的設(shè)計(jì)符合醫(yī)院應(yīng)用的真實(shí)場(chǎng)景。本實(shí)驗(yàn)算法運(yùn)行的準(zhǔn)確率為100%,因?yàn)樵诎察o的環(huán)境下進(jìn)行語(yǔ)音錄入,沒(méi)有受到周?chē)h(huán)境其他噪聲的影響,而且用標(biāo)準(zhǔn)的普通話(huà)以正常的語(yǔ)速錄入,語(yǔ)音識(shí)別軟件把語(yǔ)音轉(zhuǎn)換成文本的準(zhǔn)確率為100%,電子病歷信息的講稿也是按照表單項(xiàng)目進(jìn)行規(guī)范化設(shè)計(jì)的,所以算法運(yùn)行的準(zhǔn)確率非常高。可見(jiàn),該算法不僅具有研究的價(jià)值和意義,還具有良好的應(yīng)用前景。
基于索引目錄的病歷信息文本挖掘算法,根據(jù)當(dāng)前錄入界面的表單項(xiàng)目自動(dòng)生成對(duì)應(yīng)的索引目錄,同時(shí)醫(yī)護(hù)人員語(yǔ)音錄入電子病歷信息時(shí),也根據(jù)當(dāng)前的表單項(xiàng)目有針對(duì)性地語(yǔ)音錄入,使得算法的設(shè)計(jì)更具體、更具有針對(duì)性。算法的設(shè)計(jì)采用向量Vector 和容器Map,有利于算法的實(shí)現(xiàn)。實(shí)驗(yàn)結(jié)果表明,算法運(yùn)行的效率和準(zhǔn)確率都比較高,具有研究的價(jià)值和意義。
本文算法還有改進(jìn)與優(yōu)化的空間,對(duì)今后的研究工作提出兩點(diǎn)展望。1)針對(duì)有的醫(yī)護(hù)人員存在地方口音或者讀音不標(biāo)準(zhǔn)的問(wèn)題,改進(jìn)算法,使算法具有一定的容錯(cuò)性;2)在真實(shí)應(yīng)用場(chǎng)景中,語(yǔ)音錄入的病歷信息中可能包含一些無(wú)效的信息,比如一些尾音,因此優(yōu)化算法,對(duì)于挖掘出的關(guān)鍵病歷信息,進(jìn)行差錯(cuò)檢測(cè),并刪除無(wú)效信息,只保留關(guān)鍵核心信息。