王玉清 劉忠岐 王曉夫 譚麗
一汽總醫院?吉林大學第四醫院放射科,吉林長春 130011
[摘要] 目的 實現《醫學影像診斷特征的提取及計算機輔助診斷過濾的研究》這一科研項目的軟件開發。 方法 使用開源免費跨平臺的面向對象的Java 編程語言和netbeans集成開發環境進行開發。采用Singleton設計模式。結果該項研究實現了由臨床特征及醫學影像特征到疾病診斷的過程。 結論 通過計算機技術實現計算機對疾病的輔助診斷是可行的。
[關鍵詞] 醫學影像;特征;提取;計算機;java編程語言;netbeans集成開發環境
[中圖分類號] R445???[文獻標識碼] B???[文章編號] 2095-0616(2014)11-163-03
Medical image feature extraction and computer aided diagnosis research
WANG?Yuqing??LIU?Zhongqi??WANG?Xiaofu??TAN?Li
Department of Radiology,Faw General Hospital,the Fourth Hospital of Jilin University,Changchun 130011,China
[Abstract] Objective To realize the software development of the scientific research project "Study on Extraction of Medical Imaging Features and Computer-Aided Diagnosis and Filtration".Methods The Java programming language and Netbeans integrated development environment from the open source free cross-platform were used for development. The Singleton design mode was used. Results This project realized the process from clinical features and medical imaging features to disease diagnosis. Conclusion Realizing computer-aided disease diagnosis through computer techniques is feasible.
[Key words] Medical imaging; Feature;Extraction;Computer;Java programming language;Netbeans integrated development environment
在醫學影像診斷領域,一名軟件工程師或一名普通患者和一名影像診斷醫師的要求是不一樣的。前者要求的是:我到底得的是哪一個病。這個數學邏輯就是1=1。真理!而影像診斷醫生的要求是:只想到一種病不行,怎么能夠把各種可能的疾病都想到,給臨床提供更多更可靠的參考,以不至于漏診。醫生的數學邏輯就是1=2或3或4或更多。IT業界的專家智能診斷系統的計算邏輯一般不會這么想,可醫生實際工作中需要這么做。
所謂影像學特征,就是具有臨床診斷意義的在醫學影像圖片上的圖形表現[1]。譬如,骨膜反應、骨質破壞、軟組織包塊等等。本項目就是要提取這些影像特征并對其相應的選擇,然后再經過軟件的處理,得到相應疾病的診斷參考[2]。
軟件使用對象主要是醫學影像診斷醫師。這個軟件所提供的功能不是給患者一個唯一的確切的診斷,而是給醫學影像診斷醫師在一定范圍內的一組診斷參考。
影像學診斷是以圖為基礎的。所以,軟件開發要突出圖的特點。例如骨膜反應,不能光有文字的描述,還要有相應的圖例。
每一個診斷都要有詳細的參考資料,以便診斷醫師得出更加符合實際的專家級的診斷。
1?資料與方法
1.1?開發環境
使用Java編程語言和netbeans集成開發環境。項目本身不需要并發實現和遠程操作,因而也就不需要數據庫系統,從而降低了開發成本。開源免費,本地文件系統。
1.2?方法
1.2.1?影像特征與疾病的關系?一個疾病的影像學特征可對應多個疾病;一個疾病也包含了多個疾病的影像學特征。影像學特征和疾病是多對多的關系[3]。
1.2.2?影像特征與疾病的關系的處理?如何體現影像特征和疾病的多對多的關系是一個技術上需要考慮的問題。每一個影像特征對應多個疾病。各個影像特征所對應的疾病又有交叉重疊。譬如,骨膜反應對應的疾病有骨髓炎、骨肉瘤等;骨質破壞對應的疾病中也有骨肉瘤等[4]。以此邏輯建立的影像特征數據集合,它們所對應的疾病集合中的疾病就有重復和雍余。為了解決這個問題,在構建疾病類的時候,給每個疾病類提供一個接口[5]。當一個影像特征參數傳遞過來之后,每個疾病類都能自動判斷該病是否包含此影像特征。如果包含,則返回該疾病的名稱。這樣當循環遍歷由影像學特征枚舉常量,并調用由各疾病枚舉常量中的疾病類提供的接口,就能動態的得到每個影像特征對應的疾病集合。表面上返回的是疾病類的集合,而實際上是影像特征在每個疾病中提取的結果[6-7]。
1.2.3?數據處理?由于影像學特征和疾病都是一個非常大的數據集合,考慮到效能問題,在數據處理的時候采用“花名冊”的辦法來實現。也就是無論是影像學特征還是疾病的數據集合都是以它們的名稱字符串的形式存在,也就是它們的“花名冊”[8]。當需要查找某些數據的時候,只需要把“花名冊”拿來,從中找出那些數據的名稱字符串,最后才調用真正的數據。舉個例子來說,當我需要從1萬個人當中找出10個人,不需要把一萬個人都叫來,而是把1萬個人的“花名冊”拿來,找出10個人,然后通知這10個人到位[9]。其他9990個人都不用被通知。
1.2.4?設計模式?設計模式采用Singleton單例模式,使軟件設計更加條理清晰。軟件開發之初,沒有采用什么設計模式。但最終,隨著事務邏輯的增加,類的數量也逐漸增加,類和類之間的關系也變得越來越復雜。最終,事務邏輯混亂,只好推倒重來。這才嘗試使用設計模式[10]。效果非常滿意!
1.2.5?影像特征和疾病名稱的封裝?為了避免名稱叫法的不一致性,本軟件采取了兩個辦法。首先對影像特征的名稱字符串和疾病名稱的字符串,采用枚舉常量進行封裝[11]。在軟件開發的任何過程相應數據都不會手工輸入,而是枚舉常量的引用。這就避免了軟件開發過程中的輸入錯誤導致異常發生。其次,最終用戶界面,對影像特征和疾病名稱,皆以選項的形式呈現。從而避免了因輸入查詢時用戶輸入名稱不一致帶來的問題[12]。
1.2.6?輔助診斷算法?本程序的核心邏輯是當用戶選擇單個影像特征時,就輸出這個影像特征對應的所有疾病;當用戶同時選擇兩個或兩個以上的多個影像特征時,最后輸出的是每個影像特征對應疾病集合的交集。即所謂的診斷過濾[13]。對影像特征圖例資源的命名,采用有意義的名稱加序列號,以便在程序中動態自動的循環遍歷加載數據。
1.2.7?由影像影像特征到疾病診斷算法的實現?疾病的封裝,采用public EnumMap getInitTheDiseaseFeaturesMap()方法初始化疾病的臨床影像特征;然后使用public String getEnumDiseaseName(EnumFeature_DR_Bone enumDiseaseFeature)方法判斷enumDiseaseFeature枚舉常量是否是該疾病的臨床影像特征,如果是就返回該疾病的名稱字符串[14]。
定義一個接口,這個接口包含了public String getEnumDiseaseName(EnumFeature_DR_Bone enumDiseaseFeature)方法。讓所有疾病都實現這個接口。疾病類-造釉細胞瘤的構建見圖1。
圖1??疾病類-造釉細胞瘤的構建
1.2.8?疾病診斷的算法?每當用戶選擇一個臨床影像特征就把這個特征傳遞給public String getEnumDiseaseName(EnumFeature_DR_Bone enumDiseaseFeature)方法,返回這個特征對應的所有疾病集合[15]。最后,求得所有這些疾病集合的交集,就得到疾病診斷的集合。程序運行演示圖見圖2。
圖2??程序運行演示圖
2?結果
通過典型X線平片的影像特征及其相應臨床特征的點選,已經能在軟件的疾病診斷列表中得到相應的診斷。其基本邏輯已經實現,但還缺乏具有統計學標準的診斷結果。
3?結論
通過計算機軟件的合理設計,有望實現計算機輔助下的影像學診斷,從而克服影像診斷醫師經驗性的、片面性的、主觀性的不足,給影像診斷帶來的漏診或誤診。
4?討論
在日常的影像診斷工作中,常常遇到這樣的問題,當一個病變的影像擺在我們面前時,要做出明確的診斷甚至病變的大概性質都一時難以把握,必須翻閱厚重的書籍,而且效率低下,特別是對自己所掌握知識范圍之外的東西更不易查到,也不能得到相應的提示。出現診斷片面、漏診、誤診的幾率很大。有很多的時候,診斷大夫不能做出明確的診斷,只能含糊其詞結合臨床,給臨床大夫帶來了很大的困惑,也給患者帶來不必要的麻煩和經濟浪費,影響醫院的聲譽和經濟效益,實在痛惜,這與李莉在《醫學影像數據分類方法研究綜述》中提到的觀點一致。
計算和信息以及相應硬件的快速發展給人類提供了前所未有的便利。我們的生活、工作、學習和科研一刻也離不開計算和信息科學。計算機及其計算科學的特點就是記憶持久,查閱迅速。依靠他就能彌補人的經驗性的、主觀性的和片面性的不足,這一觀點符合CHEN Wu-Fan在《Medical Image Analysis:State of the Art and Future Directions》一文中所提出的觀點。依托成熟的信息和計算技術,提高診斷水平勢在必行,而且現實,值得研究。
通過某個疾病是否包含某個臨床影像特征的判斷,求得所選擇的特征疾病集合的交集,就是診斷的邏輯。這樣做邏輯簡單,易于實現。但是這種對是否包含的判斷過于僵硬。在用戶選擇特征時,誤選或多選少選,都將導致診斷錯誤或漏診,而在現實的疾病診斷中這是不合理的。它應該有一定的彈性度,這一觀點與房春蘭在《基于灌注分析模型的計算機輔助診斷》提出的觀點類似。如果某個疾病有十個特征,選對8個或9個,甚至2~3個典型特征都能決定對該疾病的診斷,對其他的錯選多選都不應該影響診斷。對此問題將在后續開發中解決。
[參考文獻]
[1] 王偉勝,駱嘉偉,林紅利.醫學圖像計算機輔助診斷數據平臺研究[J].中國生物醫學工程學報,2013,32(1):105-108.
[2] 李莉,木拉提·哈米提.醫學影像數據分類方法研究綜述[J].中國醫學物理學雜志,2011,28(6):3007-3011.
[3] 朱碧云,陳卉.醫學圖像紋理分析的方法及應用[J].中國醫學裝備,2013,10(08):77-81.
[4] 隋美榮,胡俊峰,鞏萍,等.計算機輔助診斷系統在急診影像學中的應用探討[J].中國醫療設備,2011,26(11):89-90.
[5] 陸陽,張書旭,袁克虹.基于云計算的遠程醫療輔助診斷咨詢系統[J].計算機系統應用,2012,21(12):22-25.
[6 房春蘭,陳雷霆,鄭睿,等.基于灌注分析模型的計算機輔助診斷[J].計算機應用研究,2009,26(3):1189-1191.
[7] 李博,曹鵬,栗偉,等.基于尺度空間中多特征融合的醫學影像分類[J].計算機應用,2013,33(4):1108-1114.
[8] 劉春,楊韜,王娟,等.計算機輔助診斷技術中圖像紋理研究的主要方法及其應用[J].中國組織工程研究與臨床康復,2009,13(39):7721-7727.
[9] 魏葆春,王來奎.計算機輔助診斷在醫學影像診斷中的應用[J].衛生職業教育,2011,29(19):154-155.
[10] 郝欣,曹穎,夏順仁.基于醫學圖像內容檢索的計算機輔助乳腺X線影像診斷技術[J].中國生物醫學工程學報,2009,28(6):922-930.
[11] Chen Wu-Fan,Qin An,Jiang Shao-Feng,et al.Medical image analysis:state of the art and future directions[J].Chinese Journal ofBiomedical Engineering,2008,27(2):175-181.
[12] 陳武凡,秦安,江少峰,等.醫學圖像分析的現狀與展望[J].中國生物醫學工程學報,2008,27(2):175-181.
[13] 房春蘭,陳雷霆,鄭睿,等.基于灌注分析模型的計算機輔助診斷[J].計算機應用研究,2009,26(3):1189-1191.
[14] LI Bin,OU Shan-xing,TIAN Lian-fang,et al.System of computer-aided detection and positioning for lung nodules[J].ApplicationResearch ofComputers,2010,27(6):2184-2188.
[15] 陳朋果,張焜和.計算機輔助診斷的臨床研究進展[J].中國現代醫生,2008,46(21):78-88.
(收稿日期:2014-03-27)