裴 禹 王秋光
(哈爾濱理工大學(xué) 電氣與電子工程學(xué)院,黑龍江 哈爾濱 150040)
公共衛(wèi)生信息系統(tǒng)主要對(duì)各種公共衛(wèi)生信息進(jìn)行管理,實(shí)現(xiàn)對(duì)疾病的預(yù)防控制和對(duì)公共衛(wèi)生的管理,尤其是實(shí)現(xiàn)對(duì)突發(fā)公共衛(wèi)生事件的應(yīng)急管理。本文提出了一種采用JavaME技術(shù)的,實(shí)現(xiàn)在手機(jī)上使用的移動(dòng)無(wú)線(xiàn)艾滋病信息管理系統(tǒng)?;贘avaME的無(wú)線(xiàn)艾滋病管理系統(tǒng)可以有效地利用手機(jī)的便攜性、不受時(shí)空限制和普及率高等優(yōu)點(diǎn),便于醫(yī)療人員在現(xiàn)場(chǎng)通過(guò)手機(jī)及時(shí)地了解病人資料、病情信息,從而把握更多的治療機(jī)會(huì)。
JavaME是Sun Microsystems公司聯(lián)合諾基亞、西門(mén)子等設(shè)備制造商共同推出的無(wú)線(xiàn)設(shè)備標(biāo)準(zhǔn)化應(yīng)用的開(kāi)發(fā)平臺(tái),它可以廣泛地應(yīng)用于移動(dòng)電話(huà)、機(jī)頂盒、智能卡和PDA等小型資源受限設(shè)備的應(yīng)用開(kāi)發(fā),其程序量一般僅為k字節(jié),因此又稱(chēng)為k-JAVA。SUN根據(jù)各種設(shè)備的資源特性將JavaME技術(shù)架構(gòu)分為:Java Virtual Machine、配置和框架三層[1]。
JVM是為特定設(shè)備的操作系統(tǒng)而定制的Java虛擬機(jī),因操作系統(tǒng)的不同而有所區(qū)別,能夠支持一個(gè)特定的JavaME設(shè)備。JVM提供了軟件運(yùn)行的基礎(chǔ)環(huán)境。JavaME支持的JVM分為兩種:CDC配置的JVM是CVM(C虛擬機(jī)),CLDC配置的JVM 是KVM。CVM功能與傳統(tǒng)的虛擬機(jī)接近,適用于擁有至少幾兆字節(jié)內(nèi)存的高端消費(fèi)類(lèi)設(shè)備;而KVM專(zhuān)用于內(nèi)存小、資源有限的設(shè)備,目前在手機(jī)中應(yīng)用的就是KVM[2]。
JavaME目前有兩種標(biāo)準(zhǔn)配置:互聯(lián)受限設(shè)備配置和互聯(lián)設(shè)備配置。CLDC是為使用較小的存儲(chǔ)容量的設(shè)備而設(shè)計(jì)的,它應(yīng)用在存儲(chǔ)容量為128kB到512kB之間的消費(fèi)電子設(shè)備上。CDC采用典型的Java虛擬機(jī)技術(shù),這種虛擬機(jī)包含了基于臺(tái)式機(jī)系統(tǒng)上的虛擬機(jī)的所有功能,適用于至少幾兆字節(jié)內(nèi)存的設(shè)備,如機(jī)頂盒和汽車(chē)導(dǎo)航等。
應(yīng)用程序是針對(duì)特定的profile編寫(xiě)的,因此可以移植到支持該profile的任何設(shè)備上。目前對(duì)于移動(dòng)電話(huà)、PDA等有限互聯(lián)設(shè)備,它們的profile層是MIDP。MIDP定義在CLDC之上,提供了對(duì)移動(dòng)信息設(shè)備的圖形界面、持久性存儲(chǔ)和網(wǎng)絡(luò)等更高層的API。對(duì)于手機(jī)這類(lèi)設(shè)備而言,MIDP、CLDC和KVM組成了開(kāi)發(fā)無(wú)線(xiàn)Java應(yīng)用程序的基礎(chǔ)。
MIDP應(yīng)用程序稱(chēng)為MIDlet,其中MIDlet suit是MIDP應(yīng)用程序的最小單位。所有的MIDlet都必須擴(kuò)展javax.microedition.midlet類(lèi),并且實(shí)現(xiàn)其定義的三個(gè)抽象方法:startApp()、pauseApp()和 destoryApp()。在 MIDlet的生命周期中有三個(gè)狀態(tài):暫停態(tài)、活動(dòng)態(tài)和銷(xiāo)毀態(tài)。當(dāng)一個(gè)新的MIDlet應(yīng)用程序剛被啟動(dòng)但是還沒(méi)有執(zhí)行startApp()方法時(shí),MIDlet公共的、沒(méi)有參數(shù)的構(gòu)造函數(shù)被調(diào)用,它處于暫停態(tài),MIDlet只是保持盡可能少的資源,等待被系統(tǒng)調(diào)度執(zhí)行[3]。
艾滋病信息管理系統(tǒng)分為手機(jī)系統(tǒng)模塊和后臺(tái)維護(hù)系統(tǒng)模塊兩大部分。手機(jī)系統(tǒng)模塊包括:(1)患者管理。負(fù)責(zé)實(shí)現(xiàn)由醫(yī)生等人員通過(guò)手機(jī)查詢(xún)患者資料,了解患者病情。(2)對(duì)患者資料的維護(hù)。
系統(tǒng)分為三層,結(jié)構(gòu)如圖1所示。
表示層由手機(jī)客戶(hù)端和Web客戶(hù)端組成。其中手機(jī)客戶(hù)端負(fù)責(zé)查詢(xún)客戶(hù)信息和展示查詢(xún)結(jié)果等視圖的顯示,Web客戶(hù)端通過(guò)IE等瀏覽器展示后臺(tái)維護(hù)系統(tǒng)中各個(gè)視圖的顯示。業(yè)務(wù)層由Jsp、Servlet和JavaBean組成。手機(jī)客戶(hù)端通過(guò)GPRS訪(fǎng)問(wèn)Servlet,用Servlet通過(guò)調(diào)用JavaBean和JDBC等訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),實(shí)現(xiàn)業(yè)務(wù)邏輯處理,而后將處理結(jié)果返回給手機(jī)客戶(hù)端,由手機(jī)客戶(hù)端將返回結(jié)果展示給手機(jī)用戶(hù)。系統(tǒng)管理員通過(guò)Web客戶(hù)端訪(fǎng)問(wèn)Jsp頁(yè)面,由Jsp頁(yè)面負(fù)責(zé)調(diào)Servlet進(jìn)行數(shù)據(jù)庫(kù)等操作。
本文以手機(jī)客戶(hù)端查詢(xún)患者信息為例重點(diǎn)介紹客戶(hù)端MIDlet編程技術(shù)。以下給出了手機(jī)系統(tǒng)模塊中患者資料管理的核心代碼。在CustomerSelect類(lèi)中實(shí)現(xiàn)用戶(hù)查詢(xún)界面和返回結(jié)果顯示。
private String[]TimeFun Type={“模糊查詢(xún)”,“精確查詢(xún)”,};
private String[]TimeFunType1={“患者姓名”,“患者編號(hào)”,“地區(qū)名稱(chēng)”,“地區(qū)編號(hào)”,};
private ChoiceGroup typechoice= new ChoiceGroup(“查詢(xún)方式”,Choice.POPUP,TimeFun Type,null);
private ChoiceGroup typechoice1=new ChoiceGroup(“查詢(xún)條件”,Choice.POPUP,TimeFunType1,null);
查詢(xún)患者資料查詢(xún)部分的系統(tǒng)演示界面如圖2。
本文利用JavaME技術(shù)在手機(jī)中開(kāi)發(fā)了手機(jī)移動(dòng)艾滋病信息管理系統(tǒng),將傳統(tǒng)的客戶(hù)關(guān)系管理系統(tǒng)擴(kuò)展到無(wú)線(xiàn)應(yīng)用領(lǐng)域,可以利用無(wú)線(xiàn)通信設(shè)備的便攜性、時(shí)空局限性低等優(yōu)勢(shì),擴(kuò)展了無(wú)線(xiàn)應(yīng)用系統(tǒng)的應(yīng)用,應(yīng)用前景非常廣闊。
[1]仵博,張立涓,池瑞楠.J2ME無(wú)線(xiàn)開(kāi)發(fā)實(shí)用教程.北京:清華大學(xué)出版社,2006
[2]詹建飛.J2ME開(kāi)發(fā)精神[M].北京:電子工業(yè)出版社,2006
[3]林勝利,劉華軍.精通J2ME無(wú)線(xiàn)編程[M].北京:中國(guó)鐵道出版社,2004