基于WPF的醫療輔助軟件設計與開(kāi)發(fā)
無(wú)錫尚沃生物科技有限公司開(kāi)發(fā)了應用于呼吸系統檢測儀器“納庫侖一氧化氮分析儀”,產(chǎn)品在投入市場(chǎng)后,發(fā)現兒童在使用儀器時(shí)與成人有很大的不同,存在不配合性、數據采集時(shí)間不同等情況。企業(yè)急需一套能夠被醫療兼容,又能夠讓不同年齡段的兒童適用的軟件。根據企業(yè)提出的相關(guān)業(yè)務(wù)需求,并且為配合醫療儀器的使用,開(kāi)發(fā)制作的側重點(diǎn)在于開(kāi)發(fā)出一些適合于兒童,并帶有簡(jiǎn)單游戲性質(zhì)的故事情節的游戲軟件。為此,我們選擇了Visual Studio 2010下的WPF(Windows Presentation Foundation)技術(shù)。本文對WPF以及WPF在項目中的實(shí)際運用進(jìn)行了介紹。
1、WPF體系架構及特點(diǎn)
WPF的全稱(chēng)是Windows Presentation Foundation,是未來(lái)十年里Windows平臺GUI開(kāi)發(fā)的最主要的技術(shù)之一。它是微軟開(kāi)發(fā)的一款基于.NET(目前最新版本為.NET Framework 4.0)平臺的最新的軟件界面顯示系統。為用戶(hù)界面、文檔和多媒體等等,提供了統一的描述和操作方法。而相對于以往的通用編程方式GDI(Graphics Device Interface),這個(gè)已經(jīng)應用于十多年的技術(shù)在.NET框架中已經(jīng)被微軟進(jìn)行了多次的擴充,但是對它的種種擴充已經(jīng)不能很好的滿(mǎn)足當前軟件開(kāi)發(fā)中對越來(lái)越復雜、越來(lái)越趨向于完美的軟件界面的需求,為了在完成相同界面時(shí)能夠達到更好的效果,同時(shí)也為了能夠滿(mǎn)足下一代操作系統的兼容。為此,發(fā)布了這一新的程序界面開(kāi)發(fā)技術(shù)。
1.1 WPF體系架構
WPF主要是由Presentation Framework、Presentation Core和mil core三層組件構成,它們是WPF的子系統。其中Presentation Framework、Presentation Core這兩者是托管組件,而mil core卻是非托管組件。而托管組件Presentation Core提供了像事件處理、布局等一系列的功能。在組件Presentation Core提供的基本功能上,組件Presentation Framework實(shí)現了WPF的各種外觀(guān),例如圖像效果的實(shí)現、按鈕控件的實(shí)現等.而非托管的mil core是以非托管代碼來(lái)編寫(xiě)的,其目的是實(shí)現與DirectX的交互,從而來(lái)提高效率。體系架構中的User32、DirectX和Kernel是Windows子系統。如WPF應用程序運行過(guò)程圖1所示。
1.2 XAML語(yǔ)言
XAML是eXtensible Application Markup Language縮寫(xiě),名為可擴展應用程序標記語(yǔ)言。從名稱(chēng)可以看出它是一種標記語(yǔ)言,也就意味著(zhù)它具有其他標記語(yǔ)言所具有的諸多特點(diǎn)。 XAML是微軟創(chuàng )建的一款新的描述性語(yǔ)言用來(lái)構建應用程序用戶(hù)界面,即用來(lái)編寫(xiě)WPF(Windows Presentation Foundation) 的應用程序。XAML引入了XML中的名字空間、屬性等多個(gè)元素,即XAML是基于XML的。并且它和XML的使用方式很接近,所以對XAML來(lái)說(shuō)它本身就是一個(gè)很好的XML文檔。
在以往的程序編寫(xiě)中,我們常常為使內部數據與界面很好的聯(lián)系在一起而大傷腦筋,而WPF提供了數據綁定這一有效的方法,從而很好的解決了這一難題。在XAML中使用數據綁定,而使用數據綁定的關(guān)鍵就是去創(chuàng )建System.Windows.Data.Binding這樣一個(gè)實(shí)例對象。當然,該對象也可以在C#中被創(chuàng )建。數據綁定其實(shí)是使界面顯示的數據值與內部數據值保持相同,而數據綁定這一功能的使用,使得我們項目組的開(kāi)發(fā)人員在很大程度上提高項目開(kāi)發(fā)工作的效率。
1.3 Microsoft Expression Blend
Microsoft Expression Blend是一個(gè)全新的、全功能的專(zhuān)業(yè)設計工具,用于創(chuàng )造基于Microsoft Windows平臺的易于使用且豐富的應用界面。使用它的首要和最終目的是作為一種可應用于WPF的設計界面工具。Microsoft Visual Studio 可以與Microsoft Expression Blend 完美的相結合在一起使用.Expression Blend 自動(dòng)生成 WPF應用程序,也就是說(shuō),所顯示的界面設計都可以由XAML代碼來(lái)表示。當然,也可以將可擴展應用程序標記語(yǔ)言(XAML)導入到Expression Blend設計界面中。
2、WPF應用程序在實(shí)際開(kāi)發(fā)項目中的運用
基于WPF的特點(diǎn)以及相關(guān)技術(shù),本文創(chuàng )建了醫療輔助系統軟件項目。下面介紹利用Microsoft Expression Blend創(chuàng )建醫療輔助系統應用程序的基本過(guò)程。
(1)打開(kāi)Microsoft Expression Blend,并新建名為Balloon的項目。
(2)我們進(jìn)入了Microsoft Expression Blend的工作區,打開(kāi)工具箱,添加背景(backimage)圖片、氣球(balloonimage)圖片、滑動(dòng)軸(silder)控件、提示使用者檢測失敗的文本(txbfailed)控件和
成功的文本(txtSucessed)控件、移動(dòng)路徑([path])、設置下拉菜單(MenuItem)、設置下拉菜單下的起始無(wú)效時(shí)間(Startinvalid)控件和成功時(shí)間(Succeedtimer)控件、開(kāi)始按鈕(btnStart)控件等。初始狀態(tài)下令文本txbfailed控件可見(jiàn),設計應用程序界面。
(3)Microsoft Expression Blend將自動(dòng)生成 Windows Presentation Foundation (WPF)應用程序,是由 XA代碼來(lái)表示的。在成功的添加諸多控件的基礎上,并在代碼窗口里實(shí)現事件響應代碼的編寫(xiě)。
(4)應用程序運行效果。開(kāi)始檢測時(shí),進(jìn)入游戲系統界面,點(diǎn)擊設置下拉菜單(MenuItem),設定下拉菜單下的起始無(wú)效時(shí)間(Startinvalid)和成功時(shí)間(Succeedtimer)的有效值,例如,起始無(wú)效時(shí)間為2秒,成功時(shí)間為5秒。點(diǎn)擊開(kāi)始按鈕(btnStart),根據吹氣時(shí)的氣量大小,滑動(dòng)軸(silder)左右移動(dòng)。當氣量小時(shí),滑動(dòng)軸(silder)向左移動(dòng),同時(shí)氣球降落;當氣量大時(shí),滑動(dòng)軸(silder)向右移動(dòng),氣球上升。成功時(shí)間達到已設定的有效值時(shí),提示使用者檢測成功的文本(txtSucessed);相反,當成功時(shí)間未達到已設定的有效值時(shí),提示使用者檢測失敗的文本(txbfailed),當兒童完成游戲的同時(shí),完成了檢測。利用Microsoft Expression Blend技術(shù)可以使得WPF應用程序更加方便、更加出色的完成。
3、結語(yǔ)
WPF給Windows應用程序的開(kāi)發(fā)帶來(lái)一次劃時(shí)代的革命,它提供了一種全新的、全功能的開(kāi)發(fā)模式。為企業(yè)的醫療儀器提供這一相配套的兒童檢測軟件,可以使得不同年齡段的兒童克服不安定心理,更好的配合醫療檢測,從而提高治療的效果,并增加了企業(yè)儀器的新服務(wù)人群,開(kāi)拓了新的醫療市場(chǎng)。
更多醫療電子信息請關(guān)注:21ic醫療電子頻道
評論