




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、科技大學本科生畢業(yè)設計說明書(畢業(yè)論文) 題 目:基于Android平臺下醫(yī)學圖像開窗顯示軟件的設計與實現(xiàn)42 / 47 基于android平臺下醫(yī)學圖像開窗顯示軟件的設計與實現(xiàn)摘 要 隨著人們生活水平的提高,科技迅速的發(fā)展,智能手機逐漸普與。2007年Google推出了基于Linux的自由與開放源代碼的Android操作系統(tǒng),目前已成為智能手機的主流操作系統(tǒng)。Android是第一個免費、開源、并且完全可定制的移動平臺,該平臺下的應用程序也越來越多,但是基于Android系統(tǒng)的醫(yī)學圖像處理軟件并不多見。DICOM是醫(yī)學圖像信息系統(tǒng)領域中的核心,它主要涉與醫(yī)學影像的編碼格式與網(wǎng)絡通信協(xié)議,是構(gòu)建
2、放射學信息系統(tǒng)(RIS)和圖像存檔與通信系統(tǒng)(PACS)的國際標準之一。DICOM也是設備無關(guān)的解決方案之一,實現(xiàn)信息資源共享的技術(shù)基礎。本設計使用Google開源項目中的解析包,實現(xiàn)了對醫(yī)學圖像文件的解析。設計論文在介紹Java語言、Eclipse軟件、Android操作系統(tǒng)以與醫(yī)學圖像相關(guān)容的基礎上,說明了整個設計過程。為了充分利用移動平臺的優(yōu)勢,方便醫(yī)生隨時診療,本設計要現(xiàn)基于Android平臺下的DICOM格式的醫(yī)學圖像的讀取和顯示。關(guān)鍵詞:Android平臺;DICOM;醫(yī)學圖像顯示The Medical Image Display Software Design and Imple
3、mentation Based on Android OSAbstractWith the improvement of peoples living standards, rapid development of science and technology, smart phones has been popularized. In 2007, Google has launched a free and open source operating system, which is named Android. It has become the mainstream mobile ope
4、rating system. Android is the fully customizable mobile platform, more and more applications appeared on the platform, but there are few App can process medical image.DICOM is the core of the field of medical image information system, which mainly relates to the medical image coding scheme and netwo
5、rk communication protocol. Also its one of the international standards to build a Radiology Information System(RIS), Picture Archiving and Communication System (PACS). One of the solutions is independent of DICOM equipment, technical basis for realizing information resources sharing. By using the co
6、des of open source projects from Google, theapplication has realized the parsingof medical image files. This paper introduces the Java language, Eclipse, Android operating system, as well as related content on the basis of medical image. It also illustrates the entire design procedure. The Applicati
7、onfully uses the advantages of mobile platforms, and simplifies diagnose procedure. Its main function is to parse medical image files and display the images.Key words: The Android platform; DICOM; Medical Image display目 錄摘 要IAbstractII第一章 緒 論11.1 引言11.2 醫(yī)學圖像簡介11.3 DICOM的發(fā)展過程21.4 DICOM圖像的應用3第二章 Andro
8、id平臺的簡述52.1 認識Android52.1.1 Android簡介52.1.2 Android的發(fā)展52.2 Android基本框架62.3 Android系統(tǒng)的四大組件92.4 Android 2.3.3模擬器介紹122.4.1 Android2.3.3模擬器概述122.5 開發(fā)語言Java122.5.1 Java簡介122.5.2 Java語言特點13第三章 搭建Android開發(fā)環(huán)境143.1 開發(fā)Android前的準備143.1.1 安裝JDK143.1.2 安裝Eclipse143.1.3 安裝Android SDK153.1.4 安裝ADT插件163.1.5 創(chuàng)建Andro
9、id虛擬設備17第四章 DICOM醫(yī)學圖像文件194.1 DICOM文件頭194.2 DICOM數(shù)據(jù)集194.2.1 VR的類型204.2.2 數(shù)據(jù)傳輸協(xié)議標識(UID)214.3 DICOM文件解析224.4 DICOM文件開窗顯示24第五章 軟件功能規(guī)劃與功能實現(xiàn)255.1 軟件功能規(guī)劃255.2 熟悉Android開發(fā)環(huán)境255.2.1 新建Android工程項目255.2.2 填寫工程信息265.2.3 運行HelloAndroid275.3 軟件設計與實現(xiàn)285.3.1 程序設計285.3.2 界面布局的設置31第六章 設計總結(jié)38參考文獻39附 錄41致 43第一章 緒 論1.1
10、引言在20世紀90年代初, 隨著通信技術(shù)、網(wǎng)絡技術(shù)以與計算機技術(shù)的發(fā)展, 圖像處理和分析以與PACS(Picture Archiving and Communication System)在醫(yī)學教學、遠程醫(yī)療以與臨床診斷中發(fā)揮著越來越重要的作用。而DICOM(Digital Imaging and Communications in Medicine,醫(yī)學數(shù)字成像和傳輸)是PACS系統(tǒng)中應用的主要標準,它涉與到信息系統(tǒng)中最主要也是最困難的醫(yī)學圖像的成像和通信,可以直接應用在RIS(Radiology Information System,放射科信息系統(tǒng))和PACS中1。DICOM(Digita
11、l Imaging and Communications in Medicine)是NEMA(美國制造商協(xié)會)和ACR(美國放射學會)聯(lián)合制定的一種規(guī)定數(shù)字醫(yī)學影像和相關(guān)信息的格式與其信息交換方法的國際標準,現(xiàn)已幾乎成為世界各國都遵循的醫(yī)學圖像標準,是醫(yī)院間以與國際間醫(yī)學圖像交流的基礎。Android是一款針對手機的全新開源軟件工具包,它由Google和開發(fā)手機聯(lián)盟(Open Handset Alliance)共同創(chuàng)建。Android有望在數(shù)年遍布于數(shù)百萬部手機和其他移動設備中,從而成為應用程序開發(fā)人員的主要平臺。Android系統(tǒng)由于功能非常豐富,所以一直受廣大開發(fā)愛好者的喜愛。但是在And
12、roid平臺下關(guān)于醫(yī)學圖像方面的軟件卻很少,現(xiàn)有的大多數(shù)圖像處理軟件都不能直接讀取和顯示dcm格式的醫(yī)學圖像文件。所以在Android平臺下編程實現(xiàn)DICOM格式的醫(yī)學圖像的讀取和顯示是非常有意義的。本次畢業(yè)設計的主要任務是用Java語言結(jié)合eclipse軟件,實現(xiàn)了Android平臺下DICOM格式的醫(yī)學圖像的讀取和顯示。1.2 醫(yī)學圖像簡介 醫(yī)學數(shù)字成像和傳輸是由ACR(American College of Radiology,美國放射學會)和NEMA(National Electrical Manufacturers Association,國家電氣制造商協(xié)會)共同制定的醫(yī)學圖像成像和
13、傳輸?shù)臉藴?。其目的是為在不同的醫(yī)學影像設備間提供一個一致性的接口,以實現(xiàn)數(shù)字影像在各種醫(yī)學影像設備間交換傳輸。隨著DICOM協(xié)議不斷的發(fā)展完善,各醫(yī)學影像設備制造商紛紛推出符合DICOM標準的醫(yī)學影像設備,DICOM已成為醫(yī)學影像的公認標準,目前版本為3.0。DICOM3.0標準有15部分組成,其中第10部分“用于介質(zhì)交換的存儲介質(zhì)和格式”給出DICOM文件格式2。DICOM文件是指按照DICOM標準存儲的醫(yī)學文件。 DICOM SOP Instance A File contains one SOP instanceDICOM Data SetDICOMFile MetaInformatio
14、nDCM文件一般由DICOM文件頭(File Meta Information)和DICOM數(shù)據(jù)集(Data Set)組成。每個DCM文件包含了一個單獨的服務對象對(Service-Object Pair,SOP)實例(如圖1)。 DICOM Part 5 Encoding 圖1 DCM文件結(jié)構(gòu)在DICOM文件中最基本的單元是數(shù)據(jù)元素,DICOM數(shù)據(jù)集就是由DICOM數(shù)據(jù)元素按照一定的順序排列組成的。標識符是一個2B 無符號整數(shù)對,分別代表組號和元素號,DICOM所有的數(shù)據(jù)元素都可以用標簽來惟一表示3。數(shù)據(jù)類型(VR)是2B的字符串,指明了該數(shù)據(jù)元素中的數(shù)據(jù)是哪種類型。不同的數(shù)據(jù)類型決定了數(shù)據(jù)
15、的不同讀取方式。數(shù)據(jù)長度是一個2B或4B(取決于顯示或隱示VR)的無符號整數(shù),指明該數(shù)據(jù)元素的數(shù)據(jù)域中數(shù)據(jù)的長度。數(shù)據(jù)域指明數(shù)據(jù)的具體數(shù)值,該字段的數(shù)據(jù)類型由數(shù)據(jù)元素的VR 所明確定義。1.3 DICOM的發(fā)展過程 20世紀70年代以來,計算機斷層成像技術(shù)和其它數(shù)字成像技術(shù)發(fā)展極其迅速,很多廠商都研制了具有計算機的成像設備,而且它們制定了各自不同的圖像格式。隨著計算機網(wǎng)絡的普與和其在醫(yī)學上的廣泛應用,在不同廠商生產(chǎn)的設備之間交換圖像和相關(guān)信息的需求日趨迫切,而缺乏統(tǒng)一的標準成為圖像交換的主要障礙。因此,ACR和NEMA在1983年組成一個聯(lián)合委員會并發(fā)起制定一個公共的標準,其目的是:(1) 有
16、助于開發(fā)和推廣圖像存檔和傳輸系統(tǒng)(PACS),并能與其它醫(yī)學信息系統(tǒng)聯(lián)系。(2) 促進數(shù)字圖像設備的網(wǎng)絡化,而不論設備的開發(fā)商是誰。(3) 建立有價值的診斷信息數(shù)據(jù)庫,它能處理地理上分散的不同設備間的請求。1985年,該委員會發(fā)表了ACR-NEMA 1.0標準(No.300-1985)。1986年10月和1988年1月又公布了該標準的兩個修訂版。1988年公布了ACR-NEMA 2.0標準(No. 300-1988)。然而由于技術(shù)上不成熟,這些規(guī)并沒有被廣泛采用。但是這些努力吸引了國際上許多著名的醫(yī)學影像設備制造商的關(guān)注與參與,終于在1996年,委員會發(fā)表了一套新的規(guī),正式命名為DICOM 3
17、.0。此規(guī)公布后立即得到眾多的廠商與機構(gòu)的采用。在此之后,DICOM標準不斷地吸納各方反饋的有用信息,從不同的專業(yè)角度對規(guī)在疇和深度上進行擴充,1998年又推出了修訂版本,目前仍然在不斷的發(fā)展中。DICOM涵蓋了數(shù)字圖像信息構(gòu)成和通信兩個領域,容極其煩瑣、龐大,目前沒有任何醫(yī)學系統(tǒng)可以支持所有的DICOM服務,每一種設備都是只針對自己最需要的部分提供支持。我們也根據(jù)核醫(yī)學的需要,制定了自己的符合DICOM標準的圖像文件格式。其中核醫(yī)學圖像文件結(jié)構(gòu)部分主要參閱了DICOM標準的PS 3.3PS 3.6和PS 3.10。PS 3.3: Information Object Definitions(
18、信息對象定義);PS 3.4: Service Class Specifications(服務類規(guī));PS 3.5: Data Structure and Encoding(數(shù)據(jù)結(jié)構(gòu)和編碼規(guī)定);PS 3.6: Data Dictionary(數(shù)據(jù)字典);PS 3.10: Media Storage and File Format for Data Interchange(便于數(shù)據(jù)交換的介質(zhì)存儲方式和文件格式)。1.4 DICOM圖像的應用 毫無疑問,DICOM是醫(yī)學圖像信息系統(tǒng)領域中的核心,它涉與到信息系統(tǒng)中最主要也是最困難的醫(yī)學圖像的存儲和通信,可直接應用在放射學信息系統(tǒng)(RIS)和圖像存
19、檔與通信系統(tǒng)(PACS)中。DICOM也是研究和開發(fā)具有網(wǎng)絡連接功能,實現(xiàn)信息資源共享的新型醫(yī)療儀器的技術(shù)基礎。醫(yī)療儀器在朝著自動化、智能化發(fā)展的同時,也在向著具有通信能力的遙控遙測和信息遠程獲取的網(wǎng)絡功能發(fā)展,醫(yī)療儀器既是醫(yī)療信息系統(tǒng)中的信息源,又是系統(tǒng)中的信息使用者,是信息系統(tǒng)中的一個主要環(huán)節(jié),網(wǎng)絡化的醫(yī)療儀器對醫(yī)學信息系統(tǒng)的重要性是不言而喻的4。 在采用DICOM標準的信息網(wǎng)絡系統(tǒng)中,所有DICOM設備之間都可以按照DICOM的網(wǎng)絡上層協(xié)議進行互相連接和操作。臨床醫(yī)生可以在辦公室查看B超設備的圖像和結(jié)果,可以在CT機上調(diào)用核磁共振圖像進行圖像的疊加融合,也可以通過網(wǎng)絡調(diào)用存儲在其他醫(yī)院的
20、圖像結(jié)果。無論是本院、本地還是相距很遠的外地,DICOM設備都可以通過網(wǎng)絡相互聯(lián)系,交換信息。由于提供了統(tǒng)一的存儲格式和通信方式,普與DICOM標準,可以簡化醫(yī)療信息系統(tǒng)設計,避免許多重復性的工作,加快信息系統(tǒng)的開發(fā)速度。對于實現(xiàn)無紙化、無膠片化的醫(yī)院和遠程醫(yī)療系統(tǒng)的實施將會起極其重要的作用。第二章 Android平臺的簡述2.1 認識AndroidAndroid一詞的英文本義指“機器人”,它是Google公司于2007年11月宣布的基于Linux平臺的開源手機操作系統(tǒng),該平臺由操作系統(tǒng)、用戶界面和應用軟件組成。 簡單的理解,Android是基于Java并運行在Linux核上的操作系統(tǒng),這個操
21、作系統(tǒng)是輕量級的,但是功能卻很全面。而且在這個系統(tǒng)上,Google公司已經(jīng)置了很多有用的軟件,如打、發(fā)短信等。該操作系統(tǒng)最初由Andy Rubin開發(fā),主要支持手機。2005年由Google收購注資,并組建開放手機聯(lián)盟開發(fā)改良,逐漸擴展到平板電腦與其他領域上5。2.1.1 Android簡介 該平臺由操作系統(tǒng)、中間件、用戶界面和應用軟件組成。它采用軟件堆層的架構(gòu),主要分為三部分。底層以Linux核工作為基礎,由C語言開發(fā),只提供基本功能;中間層包括函數(shù)庫Library和虛擬機Virtual Machine,由C+開發(fā)。最上層是各種應用軟件,包括短信程序,通話程序等,應用軟件則由各個公司自行開發(fā)
22、,以Java作為編寫程序的一部分。不存在任何以往阻礙移動產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙,是首個為移動終端打造的真正開放和完整的移動軟件。Google通過與軟、硬件開發(fā)商、電信運營商、設備制造商等其他有關(guān)各方結(jié)成深層次的合作伙伴關(guān)系,希望借助建立標準化、開放式的移動軟件平臺,從而在移動產(chǎn)業(yè)形成一個開放式的生態(tài)系統(tǒng)。 Android作為Google企業(yè)戰(zhàn)略的重要組成部分,將進一步推進“隨時隨地為每個人提供信息”這一企業(yè)目標的實現(xiàn)。全球為數(shù)眾多的移動用戶正在使用各種基于Android的6。Android將補充,而不會替代谷歌長期以來奉行的移動發(fā)展戰(zhàn)略:通過與全球各地的手機制造商結(jié)成合作伙伴,開發(fā)既有用又有吸引
23、力的移動服務,并推廣這些產(chǎn)品。2.1.2 Android的發(fā)展安卓手機就是有Android這個操作系統(tǒng)的手機,在2007年11月5日開放手機聯(lián)盟(Open Handset Alliance)成立之后,Android的發(fā)展加快了速度。07年11月12日宣布發(fā)布了第一版Android SDK;08年的4月份舉辦了安卓開發(fā)競賽,推動了安卓開發(fā)的應用速度;08年的8月份為Android平臺手機提供軟件分發(fā)和下載的Market正式上線,積累了大量的應用;08年9月22日,美國運營商T-Mobile USA在紐約正式發(fā)布第一款Google手機T-Mobile G1。該款手機為宏達電制造,是世界上第一部使用
24、Android操作系統(tǒng)的手機,支持WCDMA/HSPA網(wǎng)絡,理論下載速率7.2Mbps,并支持Wi-Fi;次日,Android 1.0 R1 SDK發(fā)布,標志著Android系統(tǒng)趨于穩(wěn)定和成熟;同年的10月,Android被宣布開放源代碼7。2.2 Android基本框架Android應用開發(fā)框架是 Application Framework,但其系統(tǒng)架構(gòu)由5部分組成,分別是:Applications、Application Framework、Libraries、Android Runtime、Linux Kernel,如圖2.1所示。(1) ApplicationApplication A
25、ndroid同一個核心應用程序包一起發(fā)布,該應用程序包包括Email客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應用程序都是用Java編寫的。 (2) Application FrameWork 通過提供開放的開發(fā)平臺,Android使開發(fā)者能夠編制極其豐富和新穎的應用程序。開發(fā)者可以自由地利用設備硬件優(yōu)勢、訪問位置信息、運行后臺服務、設置鬧鐘、向狀態(tài)欄添加通知等等,很多很多。 開發(fā)者可以完全使用核心應用程序所使用的框架APIs。應用程序的體系結(jié)構(gòu)旨在簡化組件的重用,任何應用程序都能發(fā)布他的功能且任何其他應用程序可以使用這些功能(需要服從框架執(zhí)行的安全限制)。這一機制
26、允許用戶替換組件,所有的應用程序其實是一組服務和系統(tǒng),包括:視圖(View):View是豐富的、可擴展的視圖集合,可用于構(gòu)建一個應用程序。包括包括列表、網(wǎng)格、文本框、按鈕,甚至是嵌的網(wǎng)頁瀏覽器 容提供者(Content Providers):使應用程序能訪問其他應用程序(如通訊錄)的數(shù)據(jù),或共享自己的數(shù)據(jù) 資源管理器(Resource Manager):提供訪問非代碼資源,如本地化字符串、圖形和布局文件 通知管理器(Notification Manager):使所有的應用程序能夠在狀態(tài)欄顯示自定義警告 活動管理器(Activity Manager):管理應用程序生命周期,提供通用的導航回退功能
27、。(3) LibrariesAndroid包括一個被Android系統(tǒng)中各種不同組件所使用的C/C+庫集。該庫通過Android應用程序框架為開發(fā)者提供服務。供Android系統(tǒng)的各個組件使用。這些功能通過Android的應用程序框架(Application framework)暴露給開發(fā)者。下面列出一些核心庫: 系統(tǒng)C庫:標準C系統(tǒng)庫(libc)的BSD衍生,調(diào)整為基于嵌入式Linux設備;媒體庫:基于PacketVideo的OpenCORE,支持播放和錄制許多流行的音頻和視頻格式,以與靜態(tài)圖像文件,包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG;Surface Mana
28、ger:對顯示子系統(tǒng)的管理,并且為多個應用程序提供2D和3D圖層的無縫融合。LibWebCore:一個最新的Web瀏覽器引擎用來支持Android瀏覽器和一個可嵌入的Web視圖。SGL:一個置的2D圖形引擎3D。FreeType:位圖(bitmap)和向量(vector)字體顯示。SQLite:一個對于所有應用程序可用,功能強勁的輕型關(guān)系型數(shù)據(jù)庫引擎。圖2.1 Android基本結(jié)構(gòu)(4) Android RuntimeAndroid包括了一個核心庫,該核心庫提供了Java編程語言核心庫的大多數(shù)功能。每一個Android應用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。D
29、alvik是針對于同時高效地運行多個VMs來實現(xiàn)的。Dalvik虛擬機執(zhí)行.dex的Dalvik可執(zhí)行文件,該格式文件針對最小存使用做了優(yōu)化。該虛擬機是基于寄存器的,所有的類都經(jīng)由Java匯編器編譯,然后通過SDK中的dx工具轉(zhuǎn)化成.dex格式由虛擬機執(zhí)行。Dalvik虛擬機依賴于Linux的一些功能,比如線程機制和底層存管理機制。(5) Linux Kernel Android的核心系統(tǒng)服務依賴于Linux 2.6核,如安全性,存管理,進程管理,網(wǎng)絡協(xié)議棧和驅(qū)動模型。Linux核也同時作為硬件和軟件堆棧之間的硬件抽象層,它隱藏具體硬件細節(jié)而為上層提供統(tǒng)一的服務8。2.3 Android系統(tǒng)的
30、四大組件在Android系統(tǒng)中,為我們提供了四大基本組件,每個組件是一個視圖,但是有些是可見的,有些是不可見的視圖,像Activity,ContentProvider是可見的視圖,Service和BroadcastReceiver是不可見的,它們只在系統(tǒng)的后臺運行。下面分別介紹四大組件9:(1) Activity(應用表示層)在Android系統(tǒng)中基類Activity提供可視化的用戶界面,一個Android應用通常由多個Activity組成,而且同一Android應用中的每個Activity是相互獨立的。程序啟動后顯示的第一幅畫面是應用程序的第一個Activity(默認窗口),而后可以根據(jù)需要
31、從這個Activity啟動另一個新的Activity。Activity利用View來實現(xiàn)應用中的GUI(圖形用戶界面),而用戶直接通過GUI和應用程序做交互。Activity窗口的可見容通過基類View提供。使用Activity.setContentView()方法設置當前Activity中的View對象。多個Activity組成了Activity棧(Stack),當前活動的Activity處于棧頂。Activity有自己的生命周期,由Android系統(tǒng)來控制。整個的生命周期,從onCreate(Bundle)開始到onDestroy()結(jié)束。Activity在onCreate()設置所有的“
32、全局”狀態(tài),在onDestory()釋放所有的資源。可見的生命周期從onStart()開始到onStop()結(jié)束。在這段時間,可以看到Activity在屏幕上,盡管有可能不在前臺,不能和用戶交互。onStart(),onStop()都可以被多次調(diào)用,因此Activity隨時可以在可見和隱藏之間轉(zhuǎn)換。前臺的生命周期,從onResume()開始到onPause()結(jié)束。在這段時間里,該Activity處于所有 Activity的最前面和用戶進行交互。Activity可以經(jīng)常性地在Resumed和Paused狀態(tài)之間切換。Activity整個生命周期都定義在onCreate()、onStart()、
33、onRestart()、onResume()、onFreeze()、onPause()、onStop()、onDestroy()接口方法中,所有方法都可以被重載。所有的Activity都需要實現(xiàn) onCreate(Bundle)去初始化設置,大部分Activity需要實現(xiàn)onPause()去提交更改過的數(shù)據(jù),當前大部分的Activity也需要實現(xiàn)onFreeze()接口,以便恢復在onCreate(Bundle)里面設置的狀態(tài)。圖2.2顯示了Activity的重要狀態(tài)轉(zhuǎn)換,矩形框表明Activity在狀態(tài)轉(zhuǎn)換之間的回調(diào)接口,可以重載實現(xiàn)以便執(zhí)行相關(guān)代碼,帶有顏色的橢圓形表明Activity所處
34、的狀態(tài)。(2) Service 簡介基類Service沒有可見的用戶界面,但能夠長時間的運行于后臺,在應用程序進程的主進程中。一個定義好的Service必須在AndroidManifest.xml配置文件注冊,通過元素聲明才能使用。Service有自己的生命周期,我們可以調(diào)用startServic()啟動一個Service或者bindService()方法來綁定一個存在的Service。(3) Broadcast Receiver 簡介基類Broadcast Receiver 是用戶接收廣播通知的組件,它和事件處理機制類似,只不過事件處理機制是程序組件級別的(例如,某個按鈕的單擊事件),而廣播
35、事件處理機制是系統(tǒng)級別的。到目前為止可以使用Intent來啟動一個程序組件,還可以通過使用sendBroadcast()方法來發(fā)起一個系統(tǒng)級別的事件廣播來傳遞消息。同時可以在應用程序中實現(xiàn)Broadcast Receiver來監(jiān)聽和響應這些廣播的Intent。 BroadcastReceiver是對發(fā)送出來的Broadcast進行過濾接收并響應的一類組件。它自身并不實現(xiàn)圖形用戶界面,但是當它收到某個通知后,BroadcastReceiver可以啟動Activity作為響應,或者通過NotificationMananger提醒用戶。圖2.2 Android生命周期(4) ContentProvi
36、der簡介基類ContentProvider解決了應用程序間數(shù)據(jù)通信、共享的問題,還用來保存和檢索數(shù)據(jù),并且使應用程序之間相互訪問數(shù)據(jù)成為可能。它是跨應用程序共享數(shù)據(jù)的唯一方法。Content Provider可以將應用程序特定的數(shù)據(jù)提供給另一個應用程序使用。其數(shù)據(jù)存儲方式可以是Android文件系統(tǒng)、SQLite數(shù)據(jù)庫或者其他合理的方式。Android 為常用的數(shù)據(jù)類型(如:音視頻、圖片和聯(lián)系方式等)提供了大量的Content Provider。它們被定義在vider包下面。通過定義好的ContentProvider 可以方便的進行數(shù)據(jù)操作。2.4 Android 2.
37、3.3模擬器介紹2.4.1 Android2.3.3模擬器概述模擬器有兩部分組成,左邊模擬手機顯示,右邊部分模擬手機的鍵盤。在模擬手機的部分置了一些Google公司自帶的程序,如打、發(fā)短信、計算器、鬧鐘等程序,如圖2.3所示。 圖2.3 Android模擬器中應用程序界面2.5 開發(fā)語言Java2.5.1 Java簡介Java是由Sun Microsystems公司于1995年5月推出的Java程序設計語言和Java平臺的總稱。用Java實現(xiàn)的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平臺、動態(tài)的Web、Internet計算。從此,Java被廣泛接受并推動了We
38、b的迅速發(fā)展,常用的瀏覽器現(xiàn)在都支持Java applet。 Java平臺由Java虛擬機(Java Virtual Machine)和Java 應用編程接口(Application Programming Interface)構(gòu)成。Java 應用編程接口為Java應用提供了一個獨立于操作系統(tǒng)的標準接口,可分為基本部分和擴展部分。在硬件或操作系統(tǒng)平臺上安裝一個Java平臺之后,Java應用程序就可運行。現(xiàn)在Java平臺已經(jīng)嵌入了幾乎所有的操作系統(tǒng)。這樣Java程序可以只編譯一次,就可以在各種系統(tǒng)中運行。Java應用編程接口已經(jīng)從1.1x版發(fā)展到1.2版。目前常用的Java平臺基于Java1.5
39、,最近版本為Java1.7。 Java分為三個體系JavaSE(Java2 Platform Standard Edition,Java平臺標準版),JavaEE(Java 2 Platform,Enterprise Edition,Java平臺企業(yè)版),JavaME(Java 2 Platform Micro Edition,Java平臺微型版)10。2.5.2 Java語言特點Java是一種簡單的,面向?qū)ο蟮?,分布式的,解釋型的,健壯安全的,結(jié)構(gòu)中立的,可移植的動態(tài)語言。當1995年SUN推出Java語言之后,全世界的目光都被這個神奇的語言所吸引。Java語言其實最早誕生于1991年,起初
40、被稱為OAK語言,是SUN公司為一些消費性電子產(chǎn)品而設計的一個通用環(huán)境。他們最初的目的只是為了開發(fā)一種獨立于平臺的軟件技術(shù),但是,網(wǎng)絡的出現(xiàn)改變了OAK的命運11。在Java出現(xiàn)以前,Internet上的信息容都是一些乏味死板的HTML文檔。這對于那些迷戀于WEB瀏覽的人們來說簡直不可容忍。他們迫切希望能在WEB中看到一些交互式的容,開發(fā)人員也極希望能夠在WEB上創(chuàng)建一類無需考慮軟硬件平臺就可以執(zhí)行的應用程序,當然這些程序還要有極大的安全保障。對于用戶的這種要求,傳統(tǒng)的編程語言顯得無能為力。SUN的工程師敏銳地察覺到了這一點,從1994年起,他們開始將OAK技術(shù)應用于WEB上,并且開發(fā)出了Ho
41、tJava的第一個版本。第三章 搭建Android開發(fā)環(huán)境3.1 開發(fā)Android前的準備3.1.1 安裝JDK首先找到已下載好的JDK文件,然后雙擊打開就進入了安裝JDK的界面,根據(jù)提示信息繼續(xù)安裝。安裝完成后,需要配置JDK,具體步驟如下:(1) 右擊“我的電腦”,選擇“屬性”打開;(2) 點擊“高級系統(tǒng)設置”;(3) 在“系統(tǒng)屬性”窗口中,選擇“高級”屬性頁的“環(huán)境變量”按鈕;(4) 在“環(huán)境變量”窗口中,選擇“系統(tǒng)變量”中變量名為“Path”的環(huán)境變量,雙擊該變量;(5) 把JDK安裝路徑中bin目錄的絕對路徑,添加到Path變量的值中,并使用英文狀態(tài)下的半角分號和已有的路徑進行分隔
42、;(6) 逐一點擊“確定”,退出設置。配置完成以后,使用如下格式來測試配置是否成功:(1) 打開“開始”“程序”“附件”“命令提示符”;(2) 在“命令提示符”窗口中,輸入javac,按回車執(zhí)行;如果輸出的容是使用說明,則說明配置成功。如果輸出的容是“javac”不是部或外部命令,也不是可執(zhí)行的程序或批處理文件。”,則說明配置錯誤,需要重新進行配置12。3.1.2 安裝EclipseEclipse是一個開放源代碼的、基于 Java 的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務,用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse附帶了一個標準的插件集,包括Java開發(fā)工具(Jav
43、a Development Tools,JDT)。將“Eclipse”壓縮文件壓縮到適當目錄下,接著直接打開該目錄,點擊“eclipse.exe”圖標,即可開始執(zhí)行Eclipse集成開發(fā)環(huán)境13。3.1.3 安裝Android SDKSDK(software development kit)軟件開發(fā)工具包被軟件開發(fā)工程師用于為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應用軟件的開發(fā)工具的集合。因此,Android SDK指的既是Android專屬的軟件開發(fā)工具包。解壓文件,雙擊“SDK Setup.exe”。運行SDK setup.exe文件時如果你遇到了消息為“Failed to fe
44、tch URL”的錯誤提示,如圖3.1所示。圖3.1 運行SDK setup.exe碰到這樣錯誤,請按下邊的操作:(1) 在“Android SDK and AVD Manager”窗口的左側(cè)選擇“Settings”(2) 選中“Force s /”,如圖3.2所示。(3) 點擊“Save and Apply”并重新運行SDK Setup.exe(4) 選擇你要安裝的API版本、驅(qū)動、文檔,然后選擇你需要的包。然后就是等待安裝程序下載選擇的包來安裝14。 圖 安裝ADT插件Android為Eclipse定制了一個插件,即Android Development Tools(ADT
45、),目的是為用戶提供一個強大的綜合環(huán)境用于開發(fā)Android應用程序。ADT擴展了Eclipse的功能,可以讓用戶快速地建立Android項目,創(chuàng)建應用程序界面,在基于Android框架API的基礎上添加組件,以與用SDK工具集調(diào)試應用程序,甚至導出簽名的APKs以便發(fā)行應用程序15。安裝Android Development Tools plug-in,打開Eclipse IDE。依次單擊Menu項中的HelpSoftware Updates項。在彈出的對話框中選擇“Available Software”標簽。單擊“Add Site”,輸入“dl-ssl.google./Android/ec
46、lipse”,單擊“OK”按鈕,然后就可以看到可用的插件。安裝完成后,會提示用戶重啟Eclipse。(1) 啟動Eclipse,依次選擇HelpSoftware UpdatesFind and Install項。(2) 在彈出來的對話框中選擇“Search for new features to install”項,然后單擊“Next”按鈕。(3) 單擊“New Remote Sit”項。(4) 在彈出的對話框中,給新的站名取個名字(如Android Plugin),輸入dl-ssl.go ogle./Android/eclipse/后單擊“OK”按鈕。(5) 然后可以看到剛剛添加的站點已經(jīng)加
47、入搜索的列表,選擇其前面的選擇,單擊“Finish”按鈕。(6) 在接下來的操作中,依次選擇Android PluginDeveloper Tools項,這樣會選中“Android Developer Tools”和“Android DDMS”,然后單擊“Next”按鈕。(7) 閱讀其協(xié)議,選擇“Accept terms of the license agreement”,單擊“Next”按鈕。(8) 最后單擊“Finish”按鈕。(9) 然后會出現(xiàn)“The ADT plugin is not signed: you can accept the installation anyway”,單擊
48、“Install All”按鈕。(10) 重啟Eclipse即可。安裝好插件后,還需要做如下配置才可以使用Eclipse創(chuàng)建Android項目,需要設置Android SDK主目錄。依次單擊“windowsPreference”項。在彈出的界面左側(cè)可以看到“Android”項,選中Android后,在右側(cè)設定Android SDK所在目錄為SDK Location,單擊“OK”按鈕完成安裝,如圖3.5所示。 圖3.5 設置SDK路徑界面上述操作步驟至此,開發(fā)環(huán)境搭建完成16。3.1.5 創(chuàng)建Android虛擬設備AVD全稱為Android虛擬設備(Android Virtual Device)
49、,每個AVD模擬了一套虛擬設備來運行Android平臺,這個平臺至少要有自己的核,系統(tǒng)圖像和數(shù)據(jù)分區(qū),還可以有自己的SD卡和用戶數(shù)據(jù),以與外觀顯示等。新建AVD時的Emulate設置如下:(1)選擇“Android SDK and AVD Manager”窗口;(2) 選擇“New”;(3) 輸入一個AVD名稱;(4) 選擇一個Target;(5) 輸入模擬的SD Card的容量大小;(6) 然后點擊“OK”;創(chuàng)建完后就可以運行新建的模擬器Virtual Device,注意首次運行需要幾分鐘的時間17。運行成功,如圖3.6所示。 圖3.6 啟動Android虛擬機第四章 DICOM醫(yī)學圖像文件
50、DlCOM格式圖像文件是指按照DICOM標準而存儲的文件。DICOM文件一般由DICOM文件頭和DlCOM數(shù)據(jù)集合組成。DICOM數(shù)據(jù)集合由DICOM數(shù)據(jù)元素(Data Element)按一定順序排列組成,而DICOM數(shù)據(jù)元素則是DlCOM文件最基本的構(gòu)成單元。4.1 DICOM文件頭DICOM文件頭包含了標識數(shù)據(jù)集合的相關(guān)信息,文件頭的最開始是文件前言,它由128個00H字節(jié)組成,接下來是DICOM前綴,它是一個長度為4字節(jié)的字符串“DICM”,可以根據(jù)該值來判斷一個文件是不是DICOM文件。文件頭中還包括其它信息,如文件的傳輸格式、生成該文件的應用程序等。除了128字節(jié)的文件前言和4字節(jié)的
51、DICOM前綴外,所有其它的文件頭元素都必須采用數(shù)據(jù)元素顯示格式編碼,各個數(shù)據(jù)元素排列的順序按照標簽數(shù)值從小到大(Little Endian)的傳輸格式編碼。4.2 DICOM數(shù)據(jù)集DICOM數(shù)據(jù)集是由 DICOM數(shù)據(jù)元素按照指定的順序依次排列組成的。數(shù)據(jù)元素按標簽從小到大順序排列,數(shù)據(jù)集由多個數(shù)據(jù)組構(gòu)成。每個數(shù)據(jù)組又分為若干個數(shù)據(jù)元素。同一數(shù)據(jù)組的標簽(Tag) 的前16位一樣。數(shù)據(jù)元素(Data Element)是DICOM文件中最基本的單元。DICOM數(shù)據(jù)元素的組成如圖4.2所示。它主要由四個部分組成:標簽(Tag)、值類型描述(Value Representation, VR)、值長度
52、(Value Length)和值域(Value Field)。 圖4.2 DICOM文件數(shù)據(jù)元素的組成(1) 標簽:是一個4字節(jié)的無符號整數(shù)。DICOM所有的數(shù)據(jù)元素都可以用標簽來唯一表示,各個標簽對應什么數(shù)據(jù)元素可以查閱DICOM標準PS 3.6 部分數(shù)據(jù)字典。在 DICOM中人為將標簽分為兩個部分:組號( 高位 2 字節(jié)) 和元素號(低位2字節(jié)),在數(shù)據(jù)字典中所有的元素都用“(組號,元素號)”這種方式來表示的。 (2) 值類型描述:值類型描述VR指明了該數(shù)據(jù)元素中的數(shù)據(jù)是哪種類型的。在DICOM 文件中,它是一個長度為2個字節(jié)的字符串,例如一個數(shù)據(jù)元素的VR為“FL”則表示該數(shù)據(jù)元素中存儲
53、的數(shù)據(jù)為浮點型數(shù)據(jù)。關(guān)于 VR 的詳細取值和說明可以參閱DICOM標準。在數(shù)據(jù)元素中VR是可選的,其取決于事先商定的數(shù)據(jù)傳輸句法(Transfer Syntax UID),它包含在標簽為(0002, 0010) 的數(shù)據(jù)元素中。DICOM中規(guī)定了顯式(Explicit VR)和隱式(Inexplicit VR) 兩種傳輸格式,其中在顯式傳輸時,VR必須存在;在隱式傳輸時,VR必須省略。 (3) 值長度:指明該數(shù)據(jù)元素的數(shù)據(jù)域中存放的數(shù)據(jù)值的長度(字節(jié)數(shù))。 (4) 值域:包含了該數(shù)據(jù)元素的數(shù)據(jù)值。數(shù)據(jù)值的長度必須為偶數(shù)字節(jié),其類型由VR定義。4.2.1 VR的類型VR分為顯式(Explicit
54、VR)和隱式(Implicit VR)兩種。數(shù)據(jù)在顯式傳輸時VR必須存在,而隱式傳輸時VR為空。數(shù)據(jù)長度VL指明數(shù)據(jù)元素的數(shù)據(jù)域中數(shù)據(jù)的長度(字節(jié)數(shù))。數(shù)據(jù)域中包含了數(shù)據(jù)元素的數(shù)值。下面以標簽為(0010,0010)表示病人的數(shù)據(jù)元素為例對上述介紹作一比較形象的說明。(1) 顯式(Explicit VR)傳輸時: (2) 隱式(Implicit VR)傳輸時:由此可見,顯式時VR中存放數(shù)據(jù)類型,隱式時VR不存在。VL表示數(shù)值長度,如上例中的“Harison Ford”占12個字節(jié)長。組號為0002的數(shù)據(jù)元素都是顯式的。4.2.2 數(shù)據(jù)傳輸協(xié)議標識(UID)標簽為(0002,0010)的數(shù)據(jù)元素
55、存放的是數(shù)據(jù)傳輸協(xié)議標識(Transfer Syntax UID)。其具體容如表4.2所示。UID形式上是一個字符串,用于唯一標識DICOM標準中各種不同的信息對象,在DICOM文件中有很多UID,如診斷UID、字符格式UID、圖像存儲UID、傳輸協(xié)議UID等等,這些UID有些可以套用現(xiàn)成的,有些必須要自己確定,特別是UID中的廠商信息、醫(yī)院信息以與圖像的分類序列號等等。表4.2 傳輸協(xié)議UID每個UID由兩部分組成,一個根(org root)和一個后綴(sufix),其格式為:。由所指示的機構(gòu)分配,并且必須在圍保證唯一性。如“1284010008”專門保留給DICOM所定義的術(shù)語(如傳輸語法
56、)使用,其中,“1”表示國際標準化組織ISO,“2”表示ISO下屬的一個成員機構(gòu),這里指美國國家標準組織ANSI,“840”表示成員機構(gòu)所在的國家或地區(qū)代碼,這里指美國,“10008”在這里指NEMA。4.3 DICOM文件解析對DICOM 格式文件進行解析的大致流程如圖4.3所示。首先,選擇后綴名為.dcm或.DCM的DICOM文件打開,跳過前128 個字節(jié)的文件前綴,讀取接下來的4個字節(jié),檢查容是否為字符串“DICM”,即“44 49 43 D4”,滿足條件后即開始對文件容的解析。讀取組號為0X0002 的文件元信息,隨后開始進行對數(shù)據(jù)集的讀取,根據(jù)組號和元素號確定標識符(Tag),按照標識符的容在數(shù)據(jù)字典中查找到該數(shù)據(jù)元素所代表的意義。并根據(jù)VR確定值的數(shù)據(jù)類型。然后再根據(jù)值長度讀取值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 不銹鋼管件購買合同范例
- 關(guān)于2025年高中學校德育工作總結(jié)三篇
- 中醫(yī)館銷售藥品合同范例
- 多一些理解第2課時(教學設計+學習任務單)道德與法治2024-2025學年三年級上冊統(tǒng)編版
- 產(chǎn)品代理銷售居間合同范例
- 傳媒公司總包合同范例
- 企業(yè)制式合同范例
- 企業(yè)采購部個人年終工作總結(jié)五篇
- 專利挖掘策劃合同范本
- 分批付費合同范例
- EXCEL宏編程簡明教程(有實例)
- 高低壓開關(guān)柜安裝檢驗記錄
- 益生菌精品課件
- 一級公司向二級公司授權(quán)管理制度
- 沃爾瑪全國的分布
- (自考)財務管理學完整版課件全套ppt教程(最新)
- 第四紀地質(zhì)與環(huán)境:第十一章 第四紀氣候變遷及其動力機制
- 小學生心理健康講座-(精)
- 蝴蝶豌豆花(課堂PPT)
- 數(shù)獨6×6初級打印版
- 口腔修復學-第七章-牙列缺失的全口義齒修復
評論
0/150
提交評論