欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法

文檔序號:6518787閱讀:505來源:國知局
一種基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法
【專利摘要】本發(fā)明涉及一種基于Android平臺的DICOM醫(yī)學圖像顯示處理方法。本發(fā)明包括:開啟線程獲取存儲模塊中的圖片文件,并記錄圖片文件路徑名;判斷獲取的圖片文件的后綴名是否為DCM;讀取DICOM文件信息;判斷這數(shù)據(jù)是否為DICM;文件解析模塊解析DICOM文件;判斷圖片文件解析是否完成;保存解析圖片文件得到的數(shù)據(jù);將保存的圖片文件數(shù)據(jù)中的像素數(shù)據(jù)做數(shù)據(jù)規(guī)范化轉換;加載圖片數(shù)據(jù);對顯示的圖片進行圖片處理。本發(fā)明能夠將大容量無壓縮的DICOM醫(yī)學圖像顯示在Android平臺上,顯示圖片速度快、流暢;一次讀取多張圖片,加載圖片的速度快,能夠非常方便的在不同圖片間切換。
【專利說明】—種基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法
【技術領域】
[0001]本發(fā)明涉及一種基于Android平臺的DICOM醫(yī)學圖像顯示處理方法。
【背景技術】
[0002]目前,很多醫(yī)院現(xiàn)有的醫(yī)學圖像處理平臺,都是放置在一些部門的固定位置,如護士值班室,醫(yī)生辦公室等。隨著醫(yī)院信息化建設的不斷完善,現(xiàn)有的醫(yī)生工作站、護士工作站等固定信息點的功能已不能滿足日益增長的需求,移動醫(yī)療業(yè)務的需求越來越突出。
[0003]隨著3G時代的到來,移動終端設備正向智能化的方向邁進,各類智能終端操作系統(tǒng)應運而生,這其中最具代表性的就是Android。鑒于Android的便利性和快捷性,必將成為未來智能終端平臺的主流,把遠程醫(yī)療、3G網(wǎng)絡和Android結合起來,將會打開遠程醫(yī)療新的篇章,給醫(yī)療市場帶來新的變革。
[0004]目前在Android平臺上對常規(guī)圖像的顯示都是基于Android平臺自帶的Π引擎顯示,但其并不能顯示特定圖像格式,如DICOM醫(yī)學圖像,而對于臨床診斷的需求DICOM醫(yī)學圖像又是必備的要素,因此,本發(fā)明在Android系統(tǒng)平臺上進行DICOM標準圖像的顯示,并對顯示的DICOM圖像進行灰度變換、灰度反轉變換、偽彩色變換、圖片縮放、CT Bone、CTLung和對灰度值進行調節(jié),以方便醫(yī)師參考以進行醫(yī)學學術討論或做出進一步診斷。而且Android移動終端的便攜性為軟件的應用提供了更為廣泛的平臺,使醫(yī)生或醫(yī)學院的學生隨時隨地的進行醫(yī)學研究和學習。

【發(fā)明內(nèi)容】

[0005]本發(fā)明的目的是要提供一種使醫(yī)學圖像的瀏覽和處理過程更加便捷的基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法。
[0006]本發(fā)明的目的是這樣實現(xiàn)的:
[0007](I)開啟線程獲取存儲模塊中的圖片文件,并記錄圖片文件路徑名;
[0008](2)判斷獲取的圖片文件的后綴名是否為DCM,若是DCM,則初步判定該圖片文件為DICOM文件,轉步驟(3),若不是DCM,則關閉線程;
[0009](3)讀取DICOM文件信息,讀取128字節(jié)的00H文件序言和4個字節(jié)的數(shù)據(jù);
[0010](4)根據(jù)步驟(3)讀取的4個字節(jié)的數(shù)據(jù),判斷這4個字節(jié)的數(shù)據(jù)是否為DICM,若是DICM,判定該文件為標準的DICOM文件,轉步驟F,若不是DICM,則關閉線程;
[0011](5)文件解析模塊解析DICOM文件;
[0012](6)判斷圖片文件解析是否完成,若完成則執(zhí)行步驟(7);若未完成,則繼續(xù)執(zhí)行步驟(5);
[0013](7)保存解析圖片文件得到的數(shù)據(jù);
[0014](8)將保存的圖片文件數(shù)據(jù)中的像素數(shù)據(jù)做數(shù)據(jù)規(guī)范化轉換,并將數(shù)據(jù)存儲在緩存區(qū);
[0015](9)加載圖片數(shù)據(jù),在用戶界面上顯示原始DICOM圖像和緩存區(qū)的信息;[0016](10)另外開啟線程,對顯示的圖片進行圖片處理;
[0017](11)關閉線程。
[0018]獲取存儲模塊中的圖片文件的方式為:多線程斷點遠程下載通過連接web服務器,從服務器中下載文件到Android客服端;直接存儲是將文件直接拷貝至文件夾中,分別調用DICOMFiIeChooser和DICOMFileFilter這兩個類,來獲取存儲模塊中的文件,在DICOMFile Chooser中提供onListltemClick O方法進入和退出各個目錄并記錄路徑名,然后通過DICOM FileFilter這個類來過濾文件類型。
[0019]通過調用DICOMBufferedlnputStream、DICOMReader> DICOMImageReader 這三個類來讀取DICOM文件的信息,其中三個類的繼承關系是DICOMBufferedlnputStream的父類是 BufferedInputStream, DICOMReader 類繼承 DICOMBufferedlnputStream 類,DICOMImageReader 類繼承 DICOMReader。在 DICOMImageReader 類中通過調用解析方法 parse ():該方法調用內(nèi)部類DICOMImageReaderFunctions,并且該內(nèi)部類實現(xiàn)了 DICOMReaderFunctions接口,來解析文件。
[0020]讀取DICOM文件的信息包括像素數(shù)據(jù)和文本信息,文本信息包括患者姓名、年齡、癥狀判斷、圖像采集時間與采集所用設備。
[0021]文件解析模塊解析圖片文件包括:
[0022]I)讀取標準DICOM文件的文件元信息,確定編碼方式;
[0023]2)讀取4字節(jié)標簽,根據(jù)數(shù)據(jù)字典獲取標簽名;
[0024]3)根據(jù)文件中數(shù)據(jù)元素的數(shù)據(jù)類型,確定值得數(shù)據(jù)類型;
[0025]4)根據(jù)數(shù)據(jù)字典的多值性,確定多值性,讀取值長度;
[0026]5 )根據(jù)值長度和VM讀取值域;
[0027]6)判斷文件解析是否結束:若結束,則文件解析完成,執(zhí)行下一步;若未結束則返回執(zhí)行步驟2),并按照上述步驟循環(huán),直至解析完成;
[0028]7)文件解析結束,轉存數(shù)據(jù)。
[0029]本發(fā)明的有益效果在于:相對于現(xiàn)有技術,本發(fā)明所述的技術方案提供利用多種不同的圖片獲取方式,能夠滿足用戶不同情況的需要,非常方便查看圖像;同時,能夠非常好的將大容量無壓縮的DICOM醫(yī)學圖像顯示在Android平臺上,并且顯示圖片速度快、流暢;其次,采用緩存技術,一次讀取多張圖片,加載圖片的速度快,能夠非常方便的在不同圖片間切換。最后,本技術方案結合Android移動終端的特點,通過觸摸屏進行操作的交互優(yōu)勢,使醫(yī)學圖像的瀏覽和處理過程更加便捷。
【專利附圖】

【附圖說明】
[0030]圖1基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法的結構示意圖;
[0031]圖2基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法的整體流程圖;
[0032]圖3基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法中多線程斷點遠程下載原理圖;
[0033]圖4基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法中解析模塊的執(zhí)行流程圖;
[0034]圖5基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法中手動緩存的執(zhí)行流程圖;
[0035]圖6基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法中顯示處理模塊的執(zhí)行流程圖;
[0036]圖7基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法的實例顯示處理效果圖?!揪唧w實施方式】
[0037]本發(fā)明的目的是要提供一種基于Android平臺上顯示DICOM醫(yī)學圖像,并對顯示在Android平臺上的DICOM醫(yī)學圖像進行圖像處理的方法。結合Android移動終端的特點,通過觸摸屏進行操作的交互優(yōu)勢,使醫(yī)學圖像的瀏覽和處理過程更加便捷。
[0038]本發(fā)明所采用的技術方案如下:
[0039]一種基于Android平臺的DICOM醫(yī)學圖像顯示處理方法,所述的方法包括四個功能模塊:圖像存儲模塊,文件解析模塊、緩存模塊和顯示處理模塊。
[0040]在Android平臺實現(xiàn)顯示處理DICOM醫(yī)學圖像,具體實施步驟包括:
[0041]A開始程序;
[0042]B開啟線程獲取存儲模塊中的文件,并記錄文件路徑名;
[0043]C判斷獲取的文件的后綴名是否為DCM,若“是”,則初步判定該文件為DICOM文件,轉步驟D,若“否”,則轉步驟L ;
[0044]D打開文件讀取該文件信息,讀取128字節(jié)的00H文件序言和4個字節(jié)的數(shù)據(jù);
[0045]E根據(jù)步驟D讀取的4個字節(jié)的數(shù)據(jù),判斷這4個字節(jié)的數(shù)據(jù)是否為“DICM”,若“是”,判定該文件為標準的DICOM文件,轉步驟F,若“否”,則轉步驟L ;
[0046]F繼續(xù)解析文件;
[0047]G判斷文件解析是否完成,若“是”,轉步驟H,若“否”,則轉步驟F,重復執(zhí)行步驟F、G,直到文件解析完成;
[0048]H保存解析圖片得到的數(shù)據(jù);
[0049]I將保存的圖片數(shù)據(jù)中的像素數(shù)據(jù)做數(shù)據(jù)規(guī)范化轉換,并將數(shù)據(jù)存儲在緩存區(qū);
[0050]JView (控件)加載圖片數(shù)據(jù),在用戶界面上顯示原始DICOM圖像和緩存區(qū)的信息;
[0051]K另外開啟線程,對顯示的圖片進行圖片處理;
[0052]L關閉線程,退出程序;
[0053]上述B和C步驟的操作中,具體為利用本發(fā)明方法中的圖像存儲模塊獲取圖片。本發(fā)明的圖片存儲模塊提供兩種不同的方式獲取圖片:多線程斷點遠程下載和直接存儲。多線程斷點遠程下載方式通過連接web服務器,從服務器中下載文件到Android客服端,下載文件存儲在/mnt/sdcard/download文件夾中;直接存儲是將文件直接拷貝至/mnt/sdcard中。在步驟B和C中主要是分別調用DICOMFileChooser和DICOMFileFilter這兩個類,來獲取存儲模塊中的文件。在DICOMFileChooser中提供onListltemClick O方法進入和退出各個目錄并記錄路徑名,然后通過DICOMFileFilter這個類來過濾文件類型。
[0054]上述D、E、F、G步驟的操作中,具體為利用本發(fā)明方法中的文件解析模塊,解析線程以循環(huán)的方式把文件解析完成。解析過程首先讀取DICOM文件的信息,通過調用 DICOMBufferedlnputStream、DICOMReader> DICOMImageReader 這三個類來讀取,其中三個類的繼承關系是!DICOMBufferedlnputStream 的父類是 BufferedInputStream,DICOMReader 類繼承 DICOMBufferedlnputStream 類,DICOMImageReader 類繼承DICOMReader0在DICOMImageReader類中通過調用解析方法parse O:該方法調用內(nèi)部類DICOMImageReaderFunctions,并且該內(nèi)部類實現(xiàn)了 DlCOMReaderFunctions 接 口,來解析文件。將讀取的這些數(shù)據(jù)值包括:像素數(shù)據(jù)和文本信息(非像素數(shù)據(jù)),這些文本信息包括患者姓名、年齡、癥狀判斷、圖像采集時間與采集所用設備等相關信息,將這些數(shù)據(jù)保存在相應的數(shù)據(jù)結構中。具體的解析流程步驟,請參見圖4。解析流程的步驟是:
[0055]F1、讀取標準DICOM文件的文件元信息,確定編碼方式;
[0056]F2、讀取4字節(jié)標簽,根據(jù)數(shù)據(jù)字典獲取標簽名;
[0057]F3、根據(jù)文件中數(shù)據(jù)元素的數(shù)據(jù)類型(VR),確定值得數(shù)據(jù)類型;
[0058]F4、根據(jù)數(shù)據(jù)字典的多值性(VM),確定多值性,讀取值長度;
[0059]F5、根據(jù)值長度和VM讀取值域;
[0060]F6、判斷文件解析是否結束:若“是”,則文件解析完成,執(zhí)行下一步;若“否”則返回執(zhí)行步驟F2,并按照上述步驟循環(huán),直至解析完成;
[0061]F7、文件解析結束,轉存數(shù)據(jù)。
[0062]上述I步驟的操作中,具體為利用本發(fā)明方法中的緩存模塊。本發(fā)明的文件緩存方式有兩種:一種是手動的,通過調用onCreateOptionsMenu()方法創(chuàng)建MENU菜單項,再通過調用OnMenuItemSelectedO方法中的switch語句提供緩存選項,然后單擊MENU菜單項中的緩存所有文件選項,加載當前目錄下所有標準的DICOM文件;一種是自動的,當存儲區(qū)有DICOM文件時,選擇其中一張打開進行顯示時,緩存進程會自動的異步加載其他圖片到Cached file,完成后通過Handler機制發(fā)送消息,并在UI線程中處理消息,然后通過Handler Message來更新UI線程,更新在UI上顯示Cached file的文件數(shù)目。在緩存過程中程序會調用cachelmagesO方法,由于該方法的類引入(import)了線程類ThreadState:在ThreadState類中定義了 6個short類型的常量,分別代表6種不同的線程狀態(tài),所以在cachelmagesO方法中用switch語句提供了 6種不同線程狀態(tài):1.ThreadState.STARTED加載線程開始;2.ThreadState.PROGRESS 10N_UPDATE 線程加載進展更新;3.ThreadState.FINISHED 加載完成,線程結束;4.ThreadState.CATCHABLE_ERR0R_0CCURRED 線程加載時出錯,加載失??;5.ThreadState.UNCATCHABLE_ERR0R_0CCURRED線程加載時出錯,但該錯誤能忽略或加載成功;6.ThreadState.0UT_0F_MEM0RY加載時內(nèi)存空間不夠,拋出異常。通過cachelmagesO方法中不同的線程狀態(tài),來判斷緩存的加載情況。手動緩存的具體加載過程,請參加見圖5。手動緩存流程的步驟具體包括:
[0063]F1、單擊MENU菜單選擇緩存所有的DICOM文件選項;
[0064]F2、開啟線程掃描存儲區(qū),判斷存儲區(qū)中是否有要顯示的DICOM圖片,并記錄滿足加載條件的文件數(shù)目:若“是”,則執(zhí)行下一步;若“否”,則存儲區(qū)沒有DICOM圖片,則執(zhí)行步驟F6 ;
[0065]F3、圖片加載線程進行加載;
[0066]F4、根據(jù)不同加載線程的狀態(tài)判斷所有文件是否全部加載完成:若“是”,則執(zhí)行下一步;若“否”,則返回執(zhí)行步驟F3,按照上述步驟循環(huán),直至加載完成;
[0067]F5、將加載完成的圖片存儲在Cached file中;
[0068]F6、更新Cached file的文件數(shù)目,關閉加載線程,加載結束。[0069]上述J、K步驟的操作中,具體為利用本發(fā)明方法中的顯示處理模塊。顯示處理模塊首先在用戶界面上顯示DICOM圖像,然后對顯示的圖像進行處理。DICOM圖像在用戶界面上顯示主要是通過調用DICOMViewer類,該類繼承自Activity并實現(xiàn)了監(jiān)聽接口 SeekBar.0nSeekBarChangeListener。在 DICOMViewer 類中實現(xiàn)了 SeekBar.0nSeekBarChangeListener監(jiān)聽接口的功能:把緩存文件夾中的圖片數(shù)量以SeekBar拖動條形式顯示用戶界面,一端顯示當前圖片是第幾張圖片,另一端顯示緩存文件夾中的圖片數(shù)量,通過觸摸SeekBar來切換圖片;當緩存區(qū)只有一張圖片時,SeekBar默認不在用戶界面顯示。在該類中還通過引入(import)其他類如:CLUTMode、ToolMode、ScaleMode、GrayscaleWindowView和調用onOptionsItemSelectedO方法來設置各種處理方法。其中CLUTMode和ToolMode這兩個類主要實現(xiàn)灰度變換、灰度反變換、偽彩色變換和對灰度值進行調節(jié)的功能,通過這三種變換和灰度值的變換對比,更加清楚的觀察感興趣的部位,更好的進行閱片jcaleMode類實現(xiàn)對圖像的縮放,觀察圖像更加精細的結構;GrayscaleWindowView類實現(xiàn)CT Bone和CT Lung功能,分別用提取圖像中骨骼和肺。具體的顯示處理模塊執(zhí)行流程,請參見圖6。顯示處理流程的步驟具體包括:
[0070]F1、將解析所保存的圖像數(shù)據(jù)中的像素數(shù)據(jù)進行數(shù)據(jù)規(guī)范化轉化;
[0071]F2、View控件加載圖片數(shù)據(jù),在用戶界面上顯示原始圖像,并同時顯示Cachedfile中文件的數(shù)目;
[0072]F3、開啟線程,對顯示的DICOM圖像進行處理;
[0073]F4、根據(jù)步驟F4中的處理方法,對圖像進行處理。
[0074]為使本發(fā)明的目的、技術方案及優(yōu)點更加清楚、明確,以下參照附圖并舉實施例對本發(fā)明進一步詳細說明。此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0075]在具體實施過程中,可以從醫(yī)院或者網(wǎng)上獲取DICOM醫(yī)學圖像文件。將獲取的圖像文件用Uedit32編輯器打開,觀察其編碼數(shù)據(jù),可以從文件的前言部分判斷是否為標準的DICOM圖像文件,方便進行下一步的操作。
[0076]請參見圖1,圖1是本發(fā)明基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法的結構示意圖。如圖1所示,本發(fā)明提供的基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法包括4個功能模塊:存儲模塊,提供多線程斷點遠程下載圖片和直接存儲兩種獲取圖片的不同方式;文件解析模塊,提取文件信息,保存解析的圖片數(shù)據(jù);緩存模塊,一次讀取一張或多張圖片存儲在Cached file中;顯示處理模塊,在用戶界面上顯示圖片,并對顯示的圖片進行處理,處理方法包括:灰度變換、反灰度變換、偽彩色變換、縮放、CT Bone,CT Lung和對灰度值進行調節(jié)。
[0077]請參見圖2,圖2是發(fā)明基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法的整體流程圖。如圖2所示,包括以下步驟:
[0078]第一步、開啟線程,進入用戶界面,以不同的方式從存儲模塊中獲取圖片;
[0079]具體地,本發(fā)明的圖片存儲模塊提供兩種不同的方式獲取圖片:多線程斷點遠程下載方式,將下載的圖片保存在\mnt\sdcard\download目錄下;直接存儲方式,將圖片拷貝至SD卡中\(zhòng)mnt\sdcard目錄下存儲。其中多線程遠程下載的基本原理如圖3所示,具體步驟包括:F1、首先獲取網(wǎng)絡文件的長度,然后在Android客戶端中生成一個與網(wǎng)絡文件長度相等的本地文件;F2、開啟N條線程下載文件,計算每條線程負責下載的數(shù)據(jù)量,公式如下:int block=文件長度%N==0?文件長度/N:文件長度/N+l ;F3、開啟多條線程分別從網(wǎng)絡文件的不同位置下載數(shù)據(jù)。并從本地文件相同的位置寫入數(shù)據(jù),要計算出每條線程從網(wǎng)絡文件的什么位置開始下載數(shù)據(jù),到什么位置結束。提供不同獲取圖片的方式好處是,滿足不同情況的需要,增強了用戶體驗。獲取文件結束后,通過調用DICOMFileChooser這個類,掃描存儲模塊各個當前目錄下的文件,并記錄路徑名。
[0080]第二步、通過調用DICOMFileFilter類來判斷獲取文件的后綴名是否為.DCM:當后綴名是.DCM時,則初步判定該文件為DICOM文件,進入第三步,當后綴名不是.DCM時跳
至第十一步;
[0081]第三步、打開文件,跳過128字節(jié)的OOH文件序言,并讀取4個字節(jié)的數(shù)據(jù);
[0082]第四步、判斷第三步讀取的4個字節(jié)的數(shù)據(jù)是否為“DICM”:當讀取的數(shù)據(jù)是“DICM”時,則判定該文件是標準的DICOM文件,則執(zhí)行下一步;當讀取的數(shù)據(jù)不是“DICM”時,則執(zhí)行第十一步;
[0083]第五步、繼續(xù)解析該標準的DICOM文件;
[0084]第六步、判斷文件是否全部解析完成:當文件全部解析完成時,則執(zhí)行下一步;當文件沒有全部解析完成,則返回執(zhí)行第五步,按照上述步驟循環(huán),直至解析完成;
[0085]在一個具體的實施例中,第三步到第六步具體為本發(fā)明所述的解析模塊,通過調用DICOMImageReader類中解析方法parse O ,以循環(huán)的方式把文件解析完成。
[0086]第七部、將解析得到的數(shù)據(jù):包括像素數(shù)據(jù)和文本信息(非像素數(shù)據(jù)),保存在相應的數(shù)據(jù)結構中;
[0087]第八步、將保存的圖片的像素數(shù)據(jù)做數(shù)據(jù)規(guī)范化轉換,并將數(shù)據(jù)存儲在緩存區(qū)中;
[0088]第九步、View控件加載圖片數(shù)據(jù),在用戶界面上顯示DICOM圖像和緩存文件Cached file中的信息;
[0089]第十步、另外開啟線程,對顯示在用戶界面上的圖片進行圖像處理;
[0090]第^^一步、關閉線程,退出程序。
[0091]具體的解析過程,請參見圖4。如圖4所示,圖片解析流程的步驟具體包括:
[0092]第一步、讀取標準DICOM文件的文件元信息,確定編碼方式;
[0093]第二步、讀取4字節(jié)標簽,根據(jù)數(shù)據(jù)字典獲取標簽名;
[0094]第三步、根據(jù)文件中數(shù)據(jù)元素的數(shù)據(jù)類型(VR),確定值得數(shù)據(jù)類型;
[0095]第四步、根據(jù)數(shù)據(jù)字典的多值性(VM),確定多值性,讀取值長度;
[0096]第五步、根據(jù)值長度和VM讀取值域;
[0097]第六步、判斷文件解析是否結束:若“是”,則文件解析完成,進入步驟第七部,若“否”則返回步驟第二步,并按照上述步驟循環(huán),直至解析完成;
[0098]第七步、文件解析結束,轉存數(shù)據(jù)。
[0099]具體的緩存過程,請參見圖5,圖5是本發(fā)明所述在基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法中手動緩存的執(zhí)行流程圖。如圖5所示,手動緩存流程的步驟具體包括:
[0100]第一步、單擊MENU菜單選擇緩存所有的DICOM文件選項;[0101]第二步、開啟線程掃描存儲區(qū),判斷存儲區(qū)中是否有要顯示的DICOM圖片,并記錄滿足加載條件的文件數(shù)目:若“是”,則執(zhí)行下一步;若“否”,則存儲區(qū)沒有DICOM圖片,則執(zhí)行第六步;
[0102]第三步、圖片加載線程進行加載;
[0103]第四步、根據(jù)不同加載線程的狀態(tài)判斷所有文件是否全部加載完成:若“是”,則執(zhí)行下一步;若“否”,則返回執(zhí)行第三步,按照上述步驟循環(huán),直至加載完成;
[0104]弟五步、將加載完成的圖片存儲在Cached file中;
[0105]第六步、更新Cached file的文件數(shù)目,關閉加載線程,加載結束。
[0106]本發(fā)明的文件緩存方式有兩種:一種是手動的,通過單擊MENU菜單項中的緩存所有文件選項,加載當前目錄下所有標準的DICOM文件;一種是自動的,當存儲區(qū)有DICOM文件時,選擇其中一張打開進行顯示時,緩存進程會自動的異步加載其他圖片到Cachedfile,完成后通過Handler機制發(fā)送消息,并在UI線程中處理消息,然后通過HandlerMessage來更新UI線程,更新在用戶界面上顯示Cached file的文件數(shù)目。在步驟第三步中的加載線程總共有六種線程狀態(tài),根據(jù)不同的線程狀態(tài)來判斷加載狀態(tài)。
[0107]本發(fā)明還提供對顯示在用戶界面上的DICOM圖像進行處理的模塊,完成顯示處理功能主要是通過調用DICOMViewer類。請參見圖6,圖6是本發(fā)明所述在基于Android平臺的DICIOM醫(yī)學圖像顯示方法中顯示處理模塊的執(zhí)行流程圖。如圖6所示,顯示處理流程的步驟具體包括:
[0108]第一步、將解析所保存的圖像數(shù)據(jù)中的像素數(shù)據(jù)進行數(shù)據(jù)規(guī)范化轉化;
[0109]第二步、View (控件)加載圖片數(shù)據(jù),在用戶界面上顯示原始圖像,并同時顯示Cachedfile中文件的數(shù)目;
[0110]第三步、開啟線程,對顯示的DICOM圖像進行處理;
[0111]第四步、根據(jù)第四步中的處理方法,對圖像進行處理。
[0112]本發(fā)明提供的處理方法包括:灰度變換、反灰度變換和偽彩色變換,同時可調節(jié)圖像的灰度值,通過這三種變換和灰度值的變換對比,更加清楚的觀察感興趣的部位,更好的進行閱片;縮放變換,通過調節(jié)圖片的大小,觀察圖像更加精細的結構;CT Bone和CT Lung分別用提取圖像中骨骼和肺。本發(fā)明的在Android手機上的實例顯示處理效果,請參見圖
7,圖7是本發(fā)明所述在基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法的實例顯示處理效果圖。
[0113]綜上所述,本發(fā)明基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法,通過從存儲模塊中獲取DICOM圖片文件,解析獲取的文件,保存解析的圖片數(shù)據(jù),把圖片數(shù)據(jù)中的像素數(shù)據(jù)做數(shù)據(jù)規(guī)范化轉換,并將圖片數(shù)據(jù)保存在緩存區(qū),通過View控件加載圖片數(shù)據(jù),在用戶界面(UI)上顯示原始圖像,并調用顯示處理模塊中的處理方法對圖像進行。本發(fā)明所述的技術方案能夠非常好的將大容量的DICOM醫(yī)學圖像顯示在Android平臺上,并且顯示圖片速度快,也能夠非常流暢的進行圖片間的切換,結合Android平臺通過觸摸屏操作進行交換的特點,使醫(yī)學圖像的瀏覽和處理過程更加便捷,增強了用戶體驗。
【權利要求】
1.一種基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法,其特征在于: (1)開啟線程獲取存儲模塊中的圖片文件,并記錄圖片文件路徑名; (2)判斷獲取的圖片文件的后綴名是否為DCM,若是DCM,則初步判定該圖片文件為DICOM文件,轉步驟(3),若不是DCM,則關閉線程; (3)讀取DICOM文件信息,讀取128字節(jié)的OOH文件序言和4個字節(jié)的數(shù)據(jù); (4)根據(jù)步驟(3)讀取的4個字節(jié)的數(shù)據(jù),判斷這4個字節(jié)的數(shù)據(jù)是否為DICM,若是DICM,判定該文件為標準的DICOM文件,轉步驟F,若不是DICM,則關閉線程; (5)文件解析模塊解析DICOM文件; (6)判斷圖片文件解析是否完成,若完成則執(zhí)行步驟(7);若未完成,則繼續(xù)執(zhí)行步驟(5); (7)保存解析圖片文件得到的數(shù)據(jù); (8)將保存的圖片文件數(shù)據(jù)中的像素數(shù)據(jù)做數(shù)據(jù)規(guī)范化轉換,并將數(shù)據(jù)存儲在緩存區(qū); (9)加載圖片數(shù)據(jù),在用戶界面上顯示原始DICOM圖像和緩存區(qū)的信息; (10)另外開啟線程,對顯示的圖片進行圖片處理; (11)關閉線程。
2.根據(jù)權利要求1所述的一種基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法,其特征在于:所述獲取存儲模塊中的圖片文件的方式為:多線程斷點遠程下載通過連接web服務器,從服務器中下載文件到Android客服端;直接存儲是將文件直接拷貝至文件夾中,分別調用DICOMFiIeChooser和DICOMFileFilter這兩個類,來獲取存儲模塊中的文件,在DICOMFile Chooser中提供onListltemClickO方法進入和退出各個目錄并記錄路徑名,然后通過DICOM FileFilter這個類來過濾文件類型。
3.根據(jù)權利要求1或2所述的一種基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法,其特征在于:所述獲取存儲模塊中的圖片文件通過調用DICOMBufferedlnputStream、DICOMReader、DICOMImageReader這三個類來讀取DICOM文件的信息,其中三個類的繼承關系是:DICOMBufferedInputStream 的父類是 BufferedInputStream,DICOMReader 類繼承 DICOMBufferedlnputStream 類,DICOM ImageReader 類繼承DICOMReader0在DICOMImageReader類中通過調用解析方法parse O:該方法調用內(nèi)部類DICOMImageReaderFunctions,并且該內(nèi)部類實現(xiàn)了 DICOMReaderFunc tions 接口解析文件。
4.根據(jù)權利要求3所述的一種基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法,其特征在于:所述讀取DICOM文件的信息包括像素數(shù)據(jù)和文本信息,文本信息包括患者姓名、年齡、癥狀判斷、圖像采集時間與采集所用設備。
5.根據(jù)權利要求3所述的一種基于Android平臺的DICIOM醫(yī)學圖像顯示處理方法,其特征在于,文件解析模塊解析圖片文件的步驟包括: O讀取標準DICOM文件的文件元信息,確定編碼方式; 2)讀取4字節(jié)標簽,根據(jù)數(shù)據(jù)字典獲取標簽名; 3)根據(jù)文件中數(shù)據(jù)元素的數(shù)據(jù)類型,確定值得數(shù)據(jù)類型; 4)根據(jù)數(shù)據(jù)字典的多值性,確定多值性,讀取值長度;5)根據(jù)值長度和VM讀取值域; 6)判斷文件解析是否結束:若結束,則文件解析完成,執(zhí)行下一步;若未結束則返回執(zhí)行步驟2),并按照上述步驟循環(huán),直至解析完成; 7)文件解析結束,轉存數(shù)據(jù) 。
【文檔編號】G06F19/00GK103577699SQ201310563416
【公開日】2014年2月12日 申請日期:2013年11月14日 優(yōu)先權日:2013年11月14日
【發(fā)明者】李金 , 陽倫, 梁洪, 王磊, 叢望, 欒寬, 宋建華, 張秋實, 孟祥蓮, 鮑佩華 申請人:哈爾濱工程大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
峨山| 东兰县| 贡山| 阜新| 长岭县| 松阳县| 云浮市| 八宿县| 屯门区| 武定县| 天津市| 古交市| 三河市| 潼关县| 茂名市| 沭阳县| 栾城县| 衢州市| 汽车| 凤阳县| 福建省| 靖西县| 吴川市| 正阳县| 永川市| 滕州市| 泸定县| 湄潭县| 盐亭县| 尚志市| 申扎县| 耿马| 邢台市| 安龙县| 城固县| 仁怀市| 茌平县| 克东县| 松潘县| 陆川县| 常熟市|