《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Android平臺(tái)的醫(yī)護(hù)查房系統(tǒng)的研究與設(shè)計(jì)
基于Android平臺(tái)的醫(yī)護(hù)查房系統(tǒng)的研究與設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2013年第10期
俞坤游1,, 陳益民1, 駱德漢1, 梁耀普2
1. 廣東工業(yè)大學(xué) 信息工程學(xué)院,, 廣東 廣州510006; 2. 廣州能迪自動(dòng)化設(shè)備有限公司,, 廣東 廣州 510000
摘要: 開(kāi)發(fā)了基于Android平臺(tái)醫(yī)護(hù)手持平板查房系統(tǒng),,該系統(tǒng)在Eclipse集成開(kāi)發(fā)環(huán)境下使用Android軟件開(kāi)發(fā)工具,實(shí)現(xiàn)了護(hù)士查詢(xún)病人的基本信息,、病情記錄,、健康評(píng)測(cè)記錄等功能。也允許對(duì)病人的信息進(jìn)行編輯并保存到服務(wù)器,,及對(duì)病人定期進(jìn)行健康評(píng)測(cè)并保存結(jié)果到服務(wù)器,。該應(yīng)用程序是Java語(yǔ)言開(kāi)發(fā)的,根據(jù)需求給出了系統(tǒng)的功能模塊劃分和用例分析,,并且完成了模擬器的測(cè)試,。
關(guān)鍵詞: 軟件 Android 護(hù)士 查房 JAVA
中圖分類(lèi)號(hào): TP311
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)10-0127-03
Research and design of medical ward-round system based on Android platform
Yu Kunyou1, Chen Yimin1, Luo Dehan1, Liang Yaopu2
1. College of Information Engineering Guangdong University of Technology, Guangzhou 510006, China; 2. Guangzhou Canlead Automation Equipment Co., Ltd, Guangzhou 510000, China
Abstract: The authors has developed the application of nurse handheld tablet for patient rounds on Android platform. This application, developed on Android SDK and Eclipse IDE, is available in querying the basic information of the patient, the illness records, health status evaluation and other functions. Also allows the nurse to edit the patient's information and save to the server. At the same time, the nurse can measure health status periodically on patients and save the results to the server. The application was developed in the Java language. According to the requirements, the system functions models and cases analysis were given, and worked as expected on the emulator.
Key words : Android; nurse; ward-round; Java; application

    近年來(lái),,隨著信息技術(shù)的快速發(fā)展,,國(guó)內(nèi)越來(lái)越多的醫(yī)院加速實(shí)施基于網(wǎng)絡(luò)化平臺(tái)、HIS系統(tǒng)的整體建設(shè),,以提高服務(wù)水平和核心競(jìng)爭(zhēng)力,。眾所周知,查房是醫(yī)生護(hù)士每天例行的工作,,傳統(tǒng)模式下,,護(hù)士、醫(yī)生們通常要帶上一大堆的病例本,,并以手寫(xiě)方式記錄病人的實(shí)時(shí)病情等信息,。這樣既不利于提高查房效率,,也容易因錄入和識(shí)別而產(chǎn)生誤差[1],。

    隨著Android系統(tǒng)的日益普及,。基于Android平臺(tái)開(kāi)發(fā)的各種技術(shù)應(yīng)用也越來(lái)越廣泛,。本文描述了基于WebService技術(shù)Android平臺(tái)的查房系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā),,模擬器上實(shí)現(xiàn)了護(hù)士查詢(xún)病情基本信息,病情記錄,、健康評(píng)測(cè)等功能,。
1 Android系統(tǒng)架構(gòu)和開(kāi)發(fā)環(huán)境
    Android系統(tǒng)架構(gòu)一共包含4層,分別是應(yīng)用程序?qū)?、?yīng)用框架層,、系統(tǒng)運(yùn)行庫(kù)和Linux內(nèi)核層[2-3]。通常所說(shuō)的應(yīng)用就是在最上層(即應(yīng)用層)進(jìn)行開(kāi)發(fā)的,。Android的應(yīng)用程序開(kāi)發(fā)需要用到許多工具,,包括編譯器、調(diào)試器,、模擬器等,。因此,搭建一個(gè)良好的開(kāi)發(fā)環(huán)境是進(jìn)行系統(tǒng)開(kāi)發(fā)的前提,。首先,需要下載Android SDK,、Java JDK、Eclipse,、Eclipse ADT插件,。其次安裝JDK并配置好JDK的環(huán)境變量;然后安裝Android SDK和Eclipse ADT插件,,打開(kāi)SDK Manager下載所需要的Android系統(tǒng)平臺(tái)文件,;最后配置Eclipse下的Android SDK和JDK的安裝路徑。
2 技術(shù)基礎(chǔ)
2.1 WebService技術(shù)描述

    WebService的設(shè)計(jì)思想是充分利用Web分布式編程模型的松散耦合性,,允許各種平臺(tái),、各種編程語(yǔ)言的應(yīng)用,實(shí)現(xiàn)數(shù)據(jù)交換,,并無(wú)縫地整合在一起,。即WebService可以用來(lái)消除不同平臺(tái)、不同語(yǔ)言之間的差異,,將現(xiàn)有的應(yīng)用程序發(fā)布成開(kāi)放式服務(wù),,從而允許互聯(lián)網(wǎng)上任何地方、任何平臺(tái),、任何語(yǔ)言的應(yīng)用程序訪(fǎng)問(wèn)該服務(wù)[4],。
    WebService主要體現(xiàn)在的如下幾個(gè)標(biāo)準(zhǔn)和協(xié)議為:
    (1) 可擴(kuò)展標(biāo)記語(yǔ)言(XML),,WebService采用XML進(jìn)行數(shù)據(jù)傳輸,并建立在XML之上,。
    (2) 即簡(jiǎn)單對(duì)象訪(fǎng)問(wèn)協(xié)議(SOAP),,主要是用于分布式的環(huán)境中交換信息的協(xié)議。SOAP采用XML消息格式,,可以使用不同的操作系統(tǒng),、不同的語(yǔ)言之間進(jìn)行通信。WebService就是使用SOAP作為它的標(biāo)準(zhǔn)通信協(xié)議[5],。
    (3) WebService描述語(yǔ)言(WSDL),,也是基于XML格式描述的,定義了該WebService的位置,、功能及如何通信等,。根據(jù)WebService技術(shù)的特點(diǎn), 實(shí)現(xiàn)路線(xiàn)圖如圖1所示。

2.2 基于Android的WebService技術(shù)
    Android系統(tǒng)的應(yīng)用層采用Java語(yǔ)言編寫(xiě),,其中包括了Java的很多功能,。但是由于Android系統(tǒng)沒(méi)有相應(yīng)的WebService庫(kù)文件,因此在Android平臺(tái)上需要使用第三方軟件包ksoap2-android-assembly-2.6.5-jar-with-dependencies.jar,。該軟件包是一個(gè)開(kāi)源項(xiàng)目,,為Android平臺(tái)提供了一個(gè)輕量級(jí)而高效的SOAP庫(kù)[6]。
    使用ksoap2-android開(kāi)發(fā)應(yīng)用的步驟大致如下:
  (1)首先客戶(hù)端和服務(wù)器之間要商量好所要連接的地址和接口,。根據(jù)服務(wù)器端生成WSDL文檔,,找出命名空間和接口函數(shù)以及所需要傳入的參數(shù)。SoapObject object=new SoapObject(nameSpace,method)根據(jù)接口函數(shù)傳入相關(guān)參數(shù)object.addProperty(“param”,value),其中param是參數(shù)類(lèi)型,,value是參數(shù)值,。
    (2) 使用SoapEnvelope.VER11對(duì)Soap協(xié)議版本初始化描述,確定發(fā)送對(duì)象 envelope.bodyout=object,。
  (3) 實(shí)例化HttpTransportSE類(lèi)的對(duì)象,,調(diào)用transport.call(action, envelope)傳送數(shù)據(jù),其中action為WSDL中所要調(diào)用的接口函數(shù)soapaction,。
    (4) 使用SoapObject result=(SoapObject)envelope.getResponse( )獲取返回的結(jié)果,。
    實(shí)現(xiàn)WebService數(shù)據(jù)在網(wǎng)絡(luò)中傳輸所需的數(shù)據(jù)量較大,因此,,需要將自定義類(lèi)轉(zhuǎn)換成Json格式的字符串String,,然后再由服務(wù)器端添加一個(gè)第三方Json解析包,解析客戶(hù)端傳遞的Json轉(zhuǎn)換string的類(lèi)型參數(shù),,這樣不僅使數(shù)據(jù)量得到優(yōu)化,,而且提高了傳輸速率,減少了傳輸時(shí)間,。
3 系統(tǒng)功能設(shè)計(jì)
  根據(jù)護(hù)士的需求和軟件的特點(diǎn),,系統(tǒng)的功能設(shè)計(jì)如圖2所示,。

    本系統(tǒng)開(kāi)發(fā)使用了SQLite[7]數(shù)據(jù)庫(kù),Android系統(tǒng)本身集成了SQLite,,提供了一些新的API來(lái)使用SQLite數(shù)據(jù)庫(kù),,通過(guò)使用這些API便可實(shí)現(xiàn)數(shù)據(jù)庫(kù)操作。
3.1登錄模塊
    本模塊先調(diào)用WifiManager服務(wù),,檢查平板電腦,,確定打開(kāi)WiFi,,再通過(guò)WebService傳入賬號(hào)和密碼進(jìn)入主界面,。同時(shí),需要在AndroidMainfest.xml文件中設(shè)置獲取WiFi權(quán)限和聯(lián)網(wǎng)權(quán)限,。
3.2 病人列表信息模塊
    登錄成功之后,系統(tǒng)會(huì)讓主線(xiàn)程中通過(guò)new Thread()開(kāi)啟一個(gè)線(xiàn)程,通過(guò)WebService加載病人列表,,并通過(guò)SoapObject函數(shù)getProperty來(lái)解析數(shù)據(jù)包,詳細(xì)解析需查看SoapObject的API說(shuō)明,,解析后的數(shù)據(jù)以與服務(wù)器約定好的自定義類(lèi)的形式存放在本地?cái)?shù)據(jù)庫(kù)SQLite[8-10],。
     由于Android系統(tǒng)的主線(xiàn)程(UI線(xiàn)程)是安全的,線(xiàn)程與線(xiàn)程之間的通信可使用或繼承Hander類(lèi)的對(duì)象,通過(guò)發(fā)送Message互相通信,。當(dāng)系統(tǒng)主線(xiàn)程收到Message時(shí),,主線(xiàn)程開(kāi)始加載顯示從本地?cái)?shù)據(jù)庫(kù)讀取的病人信息,并進(jìn)行按照字母排序,、位置排序以及搜素病人的操作,。這三部分操作都是通過(guò)對(duì)SQLite數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行排序、搜索操作的,。通過(guò)使用和設(shè)置ListView控件及其適配器,,將要顯示的數(shù)據(jù)以視圖的方式映射在ListView列表上,從而實(shí)現(xiàn)了數(shù)據(jù)與ListView的綁定,。其流程如圖3所示,。

3.3 基本信息模塊
    當(dāng)選擇一個(gè)病人之后,系統(tǒng)會(huì)通過(guò)WebService[11]提供的接口傳遞參數(shù)numid(病人證件號(hào))到服務(wù)器,以獲取該病人的信息,默認(rèn)顯示對(duì)應(yīng)病人的基本信息表,。如果網(wǎng)絡(luò)沒(méi)有連接上,該頁(yè)面會(huì)以Toast通知的形式出現(xiàn)提示,,同時(shí)讀取本地的數(shù)據(jù)庫(kù)SQLite加載、顯示之前下載的相對(duì)應(yīng)的病人信息,。如果連接成功,,獲取到的這些信息存在SoapObject對(duì)象中,通過(guò)getProperty解析獲取該類(lèi)每一個(gè)屬性,,同時(shí),,再把該病人的信息寫(xiě)入本地?cái)?shù)據(jù)庫(kù)SQLite以覆蓋原來(lái)的數(shù)據(jù),然后再將信息設(shè)置到Layout布局文件中,,最后用Fragment類(lèi)將信息顯示出來(lái),。Fragment[11]是Android3.0以上系統(tǒng)才有的特性,,是為了解決不同屏幕分辯率的動(dòng)態(tài)的UI設(shè)計(jì)。為此,,需要在Activity中通過(guò)getFragmentManager()獲取FragmentManager對(duì)象,,通過(guò)FragmentManager類(lèi)方法來(lái)更新UI。如果需要對(duì)修改后的病人信息進(jìn)行保存,,系統(tǒng)會(huì)通過(guò)WebService相應(yīng)接口函數(shù),將病人信息用SoapObject對(duì)象的addProperty(“param”,value)方法以參數(shù)的形式提交到服務(wù)器端保存,。同時(shí),由于病人信息是服務(wù)器和客戶(hù)端約定好的自定義類(lèi),,傳遞自定義類(lèi)對(duì)象時(shí),,需要自定義類(lèi)使用Json轉(zhuǎn)化成String類(lèi)字符串。
3.4 病情記錄模塊
    選擇病情記錄后,就會(huì)跳轉(zhuǎn)到病情記錄界面,,需要開(kāi)啟另外一個(gè)線(xiàn)程從服務(wù)器獲取信息,。系統(tǒng)會(huì)在這時(shí)將病人證號(hào)numid通過(guò)WebService傳遞到服務(wù)器,獲取SoapObject,,根據(jù)病情記錄相關(guān)類(lèi)用getProperty解析SoapObject,。病情記錄頁(yè)面上包含病情檢查記錄、實(shí)時(shí)病情記錄記錄以及醫(yī)囑記錄,。這些信息都將在網(wǎng)絡(luò)獲取之后,,存放在本地SQLite數(shù)據(jù)庫(kù),每獲取一次就會(huì)覆蓋上次SQLite數(shù)據(jù)中相應(yīng)信息,,只保留一個(gè)副本,。護(hù)士將實(shí)時(shí)檢查的信息存儲(chǔ)到實(shí)時(shí)病情記錄中,通過(guò)WebService 接口,,將所需要提交的數(shù)據(jù)用addProperty方法發(fā)送至服務(wù)器,。傳遞的信息同樣是自定義類(lèi),因此必須使用Json類(lèi)將其轉(zhuǎn)化成字符串,。
3.5 健康評(píng)測(cè)記錄模塊
    該模塊主要是通過(guò)病人配合護(hù)士做一系列題目,,然后計(jì)算出得分來(lái)評(píng)估病人的健康狀態(tài)。單擊健康評(píng)測(cè),,系統(tǒng)會(huì)列出歷史評(píng)測(cè)記錄,。評(píng)測(cè)系統(tǒng)會(huì)先通過(guò)getSharedPreferences[12]調(diào)用SharedPreferences對(duì)象,寫(xiě)入選中病人證件號(hào)numid的鍵值對(duì),。SharePreference是Android系統(tǒng)輕量級(jí)存儲(chǔ)器,,可以用來(lái)保存和共享值或者參數(shù)。評(píng)測(cè)完成后,,系統(tǒng)會(huì)將病人證號(hào)numid,、評(píng)測(cè)項(xiàng)目名稱(chēng)及分?jǐn)?shù),通過(guò)WebService提交到服務(wù)器。同樣病人的評(píng)測(cè)成績(jī)也是自定義類(lèi),因此也需要Json化轉(zhuǎn)化成字符串,。
4 測(cè)試結(jié)果
    在Eclipse開(kāi)發(fā)環(huán)境中,由遠(yuǎn)程服務(wù)器端模擬完成用于測(cè)試的相關(guān)病人信息,,平板的系統(tǒng)為Android4.0,測(cè)試結(jié)果如圖4所示,。通過(guò)病人基本信息界面,,可以查看相修改關(guān)信息,并將之保存到服務(wù)器,。圖5是病情記錄界面,,可以查看相關(guān)歷史病情記錄信息。除了上述界面之外,,還有健康評(píng)測(cè),、評(píng)測(cè)試卷等界面。

 

 

    通過(guò)使用第三方類(lèi)庫(kù)將WebService技術(shù)與Android應(yīng)用程序開(kāi)發(fā)相結(jié)合,實(shí)現(xiàn)了Android客戶(hù)端與遠(yuǎn)程服務(wù)器之間的通信連接,,同時(shí)可應(yīng)用于護(hù)士查房系統(tǒng),。該系統(tǒng)具有一定的實(shí)用性,為醫(yī)療鄰域的發(fā)展提供了一個(gè)良好的方案,。
參考文獻(xiàn)
[1] 高山.無(wú)線(xiàn)移動(dòng)查房解決方案[J].中國(guó)數(shù)字醫(yī)學(xué),,2007,2(3):53-55.
[2] 楊豐盛. Android應(yīng)用開(kāi)發(fā)揭秘[M].北京:機(jī)械工業(yè)出版社,2010.
[3] 倪紅軍,錢(qián)昌俊.基于Android平臺(tái)的自發(fā)短信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2012,38(12):126-129.
[4] 李剛.瘋狂Android講義[M].北京:電子工業(yè)出版社,,2010.
[5] 肖維民,韋津華.基于WebService的車(chē)險(xiǎn)移動(dòng)勘察系統(tǒng)[J]. 計(jì)算機(jī)應(yīng)用與軟件,,2012(6):239-241.
[6] 閔現(xiàn)暢,黃理燦. 基于Android平臺(tái)的Web服務(wù)技術(shù)研究[J].工業(yè)控制計(jì)算機(jī),2011,24(4):92-94.
[7] 劉安站,賈曉輝.基于Android的私密短信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 微型機(jī)與應(yīng)用,2012,31(17):51-52.
[8] Android Developers.[EB/OL].[2013-08-07].http://developer.android.com/guide/components/index.html.
[9] 佘志龍,陳昱勛,,鄭名杰,等.Android SDK開(kāi)發(fā)范例大全[M].北京:人民郵電出版社,,2011.
[10] 王家林.大話(huà)企業(yè)級(jí)Android開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2011.
[11] 戈改珍,解爭(zhēng)龍,,張琨.基于Android的火車(chē)時(shí)刻表查詢(xún)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),,2012,35(4):41-44.
[12] 郭宏志.Android應(yīng)用開(kāi)發(fā)詳解[M].北京:電子工業(yè)出版社,2010.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。