《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Android平臺(tái)的醫(yī)護(hù)查房系統(tǒng)的研究與設(shè)計(jì)
基于Android平臺(tái)的醫(yī)護(hù)查房系統(tǒng)的研究與設(shè)計(jì)
來源:電子技術(shù)應(yīng)用2013年第10期
俞坤游1, 陳益民1, 駱德漢1, 梁耀普2
1. 廣東工業(yè)大學(xué) 信息工程學(xué)院, 廣東 廣州510006; 2. 廣州能迪自動(dòng)化設(shè)備有限公司, 廣東 廣州 510000
摘要: 開發(fā)了基于Android平臺(tái)醫(yī)護(hù)手持平板查房系統(tǒng),該系統(tǒng)在Eclipse集成開發(fā)環(huán)境下使用Android軟件開發(fā)工具,實(shí)現(xiàn)了護(hù)士查詢病人的基本信息、病情記錄、健康評(píng)測(cè)記錄等功能。也允許對(duì)病人的信息進(jìn)行編輯并保存到服務(wù)器,及對(duì)病人定期進(jìn)行健康評(píng)測(cè)并保存結(jié)果到服務(wù)器。該應(yīng)用程序是Java語言開發(fā)的,根據(jù)需求給出了系統(tǒng)的功能模塊劃分和用例分析,并且完成了模擬器的測(cè)試。
關(guān)鍵詞: 軟件 Android 護(hù)士 查房 JAVA
中圖分類號(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

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

    隨著Android系統(tǒng)的日益普及?;贏ndroid平臺(tái)開發(fā)的各種技術(shù)應(yīng)用也越來越廣泛。本文描述了基于WebService技術(shù)Android平臺(tái)的查房系統(tǒng)的設(shè)計(jì)與開發(fā),模擬器上實(shí)現(xiàn)了護(hù)士查詢病情基本信息,病情記錄、健康評(píng)測(cè)等功能。
1 Android系統(tǒng)架構(gòu)和開發(fā)環(huán)境
    Android系統(tǒng)架構(gòu)一共包含4層,分別是應(yīng)用程序?qū)?、?yīng)用框架層、系統(tǒng)運(yùn)行庫和Linux內(nèi)核層[2-3]。通常所說的應(yīng)用就是在最上層(即應(yīng)用層)進(jìn)行開發(fā)的。Android的應(yīng)用程序開發(fā)需要用到許多工具,包括編譯器、調(diào)試器、模擬器等。因此,搭建一個(gè)良好的開發(fā)環(huán)境是進(jìn)行系統(tǒng)開發(fā)的前提。首先,需要下載Android SDK、Java JDK、Eclipse、Eclipse ADT插件。其次安裝JDK并配置好JDK的環(huán)境變量;然后安裝Android SDK和Eclipse ADT插件,打開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īng)用,實(shí)現(xiàn)數(shù)據(jù)交換,并無縫地整合在一起。即WebService可以用來消除不同平臺(tái)、不同語言之間的差異,將現(xiàn)有的應(yīng)用程序發(fā)布成開放式服務(wù),從而允許互聯(lián)網(wǎng)上任何地方、任何平臺(tái)、任何語言的應(yīng)用程序訪問該服務(wù)[4]。
    WebService主要體現(xiàn)在的如下幾個(gè)標(biāo)準(zhǔn)和協(xié)議為:
    (1) 可擴(kuò)展標(biāo)記語言(XML),WebService采用XML進(jìn)行數(shù)據(jù)傳輸,并建立在XML之上。
    (2) 即簡單對(duì)象訪問協(xié)議(SOAP),主要是用于分布式的環(huán)境中交換信息的協(xié)議。SOAP采用XML消息格式,可以使用不同的操作系統(tǒng)、不同的語言之間進(jìn)行通信。WebService就是使用SOAP作為它的標(biāo)準(zhǔn)通信協(xié)議[5]。
    (3) WebService描述語言(WSDL),也是基于XML格式描述的,定義了該WebService的位置、功能及如何通信等。根據(jù)WebService技術(shù)的特點(diǎn), 實(shí)現(xiàn)路線圖如圖1所示。

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

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

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

 

 

    通過使用第三方類庫將WebService技術(shù)與Android應(yīng)用程序開發(fā)相結(jié)合,實(shí)現(xiàn)了Android客戶端與遠(yuǎn)程服務(wù)器之間的通信連接,同時(shí)可應(yīng)用于護(hù)士查房系統(tǒng)。該系統(tǒng)具有一定的實(shí)用性,為醫(yī)療鄰域的發(fā)展提供了一個(gè)良好的方案。
參考文獻(xiàn)
[1] 高山.無線移動(dòng)查房解決方案[J].中國數(shù)字醫(yī)學(xué),2007,2(3):53-55.
[2] 楊豐盛. Android應(yīng)用開發(fā)揭秘[M].北京:機(jī)械工業(yè)出版社,2010.
[3] 倪紅軍,錢昌俊.基于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的車險(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開發(fā)范例大全[M].北京:人民郵電出版社,2011.
[10] 王家林.大話企業(yè)級(jí)Android開發(fā)[M].北京:電子工業(yè)出版社,2011.
[11] 戈改珍,解爭龍,張琨.基于Android的火車時(shí)刻表查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2012,35(4):41-44.
[12] 郭宏志.Android應(yīng)用開發(fā)詳解[M].北京:電子工業(yè)出版社,2010.

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