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

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

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

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

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

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

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

 

 

    通過使用第三方類庫將WebService技術與Android應用程序開發(fā)相結(jié)合,實現(xiàn)了Android客戶端與遠程服務器之間的通信連接,同時可應用于護士查房系統(tǒng)。該系統(tǒng)具有一定的實用性,為醫(yī)療鄰域的發(fā)展提供了一個良好的方案。
參考文獻
[1] 高山.無線移動查房解決方案[J].中國數(shù)字醫(yī)學,2007,2(3):53-55.
[2] 楊豐盛. Android應用開發(fā)揭秘[M].北京:機械工業(yè)出版社,2010.
[3] 倪紅軍,錢昌俊.基于Android平臺的自發(fā)短信系統(tǒng)設計與實現(xiàn)[J].電子技術應用,2012,38(12):126-129.
[4] 李剛.瘋狂Android講義[M].北京:電子工業(yè)出版社,2010.
[5] 肖維民,韋津華.基于WebService的車險移動勘察系統(tǒng)[J]. 計算機應用與軟件,2012(6):239-241.
[6] 閔現(xiàn)暢,黃理燦. 基于Android平臺的Web服務技術研究[J].工業(yè)控制計算機,2011,24(4):92-94.
[7] 劉安站,賈曉輝.基于Android的私密短信系統(tǒng)設計與實現(xiàn)[J]. 微型機與應用,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è)級Android開發(fā)[M].北京:電子工業(yè)出版社,2011.
[11] 戈改珍,解爭龍,張琨.基于Android的火車時刻表查詢系統(tǒng)設計與實現(xiàn)[J].現(xiàn)代電子技術,2012,35(4):41-44.
[12] 郭宏志.Android應用開發(fā)詳解[M].北京:電子工業(yè)出版社,2010.

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