国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向Android的醫(yī)院專家預(yù)約系統(tǒng)的設(shè)計與開發(fā)

2015-01-20 05:20:19唐紀權(quán)劉濤張輝
電腦知識與技術(shù) 2014年36期
關(guān)鍵詞:客戶端服務(wù)器數(shù)據(jù)庫

唐紀權(quán) 劉濤 張輝

摘要:隨著寬帶無線接入技術(shù)的普及和智能終端硬件性能的不斷提高,人們迫切希望利用移動設(shè)備方便地從互聯(lián)網(wǎng)獲取信息和服務(wù)。課題針對南京邦德骨科醫(yī)院的實際需求,以骨科患者為服務(wù)對象,采用B/S與C/S的混合架構(gòu),設(shè)計并開發(fā)了面向Android平臺的專家預(yù)約系統(tǒng)。實現(xiàn)了新聞更新、路線導(dǎo)航、檔案存儲、預(yù)約掛號等功能,并在不同的設(shè)備上安裝并測試通過。在方便患者的同時,提高了醫(yī)院的知名度、導(dǎo)醫(yī)的辦事效率,具有較好的實用價值。

關(guān)鍵詞:醫(yī)院專家預(yù)約;Android;數(shù)據(jù)庫;服務(wù)器;客戶端

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)36-8666-03

目前,各類基于Web的預(yù)約系統(tǒng)已不能滿足用戶需求,開發(fā)手機客戶端成了一個必然的趨勢。針對南京邦德骨科醫(yī)院實際需求。設(shè)計并開發(fā)專家預(yù)約系統(tǒng),實現(xiàn)新聞更新、路線導(dǎo)航、檔案存儲、預(yù)約掛號等功能,讓患者可以通過預(yù)約系統(tǒng)把準確地搜索到醫(yī)院地址、交通路線和快速撥號預(yù)約。在具備傳統(tǒng)Web專家預(yù)約掛號系統(tǒng)的已有功能的同時,增添了手持設(shè)備特有的定位功能。

1 Android應(yīng)用的構(gòu)成和工作流程

Android應(yīng)用程序一般由Activity、IntentReceiver、Service、ContentProvider四部分組成,具體使用時需要在配置文件AndroidManifest.xml中進行參數(shù)配置。Android應(yīng)用的構(gòu)成和工作流程如圖1所示。

2 系統(tǒng)的解決方案

通過GPRS/3G網(wǎng)絡(luò),將需要的數(shù)據(jù)請求傳送到專家預(yù)約系統(tǒng)服務(wù)器端。服務(wù)器端程序通過數(shù)據(jù)協(xié)議接口與存儲管理系統(tǒng)數(shù)據(jù)通訊,將手機客戶端的數(shù)據(jù)請求傳遞給存儲管理系統(tǒng)??蛻舳说玫筋A(yù)約服務(wù)器數(shù)據(jù)流后,按要求顯示獲得的數(shù)據(jù)。由此,構(gòu)建基于Android的南京邦德骨科醫(yī)院專家預(yù)約系統(tǒng)解決方案,系統(tǒng)功能結(jié)構(gòu)如圖2所示。

3 系統(tǒng)功能總體設(shè)計

系統(tǒng)設(shè)置了三種用戶:專家、系統(tǒng)管理員、病人,專家和系統(tǒng)管理員可以在系統(tǒng)運行時間內(nèi),登錄的專家預(yù)約系統(tǒng)后臺網(wǎng)站。專家可以查看病人預(yù)約信息,負責(zé)病人的檔案添加,與病人在線文字對話。管理員可以導(dǎo)入、添加、修改部分數(shù)據(jù)信息,包括醫(yī)院動態(tài)、骨科專家、特色診療、個人檔案、疾病導(dǎo)航、在線咨詢、就醫(yī)指南等。病人可以瀏覽系統(tǒng)的可視信息資源,注冊個人檔案帳號,對預(yù)約信息進行添加和修改。

4 系統(tǒng)設(shè)計

4.1 業(yè)務(wù)流程圖

業(yè)務(wù)流程主要從系統(tǒng)的管理和用戶的使用這兩個方面來介紹。用戶使用分為Web客戶端和Android客戶端兩個部分,系統(tǒng)管理分為總的后臺系統(tǒng)管理和后臺Web端管理。專家預(yù)約系統(tǒng)的業(yè)務(wù)流程如圖3所示。

圖3 專家預(yù)約系統(tǒng)業(yè)務(wù)流程圖

4.2 數(shù)據(jù)庫設(shè)計

系統(tǒng)使用My SQL設(shè)計數(shù)據(jù)庫,主要有9張表:功能管理信息表、登錄信息表、疾病導(dǎo)航表、新聞更新表、專家信息表、個人檔案信息表、預(yù)約掛號信息表、后臺角色信息表、各級管理員信息表。

5 客戶端功能設(shè)計

采用MVC(模型-視圖-控制器)模式,模型負責(zé)整個解決方案的業(yè)務(wù)邏輯實現(xiàn),底層的數(shù)據(jù)庫也由模型訪問和操作;視圖負責(zé)系統(tǒng)向用戶的展示,主要由HTML及JSP等完成;控制器負責(zé)用戶界面和業(yè)務(wù)邏輯層的通信控制,一方面解釋來自用戶界面的輸入,識別用戶動作(如點擊按鈕等),調(diào)用相應(yīng)模型中的方法,另一方面處理來自模型的事件和返回的執(zhí)行結(jié)果,調(diào)用適當(dāng)?shù)囊晥D顯示給用戶,控制器主要由Servlet完成。

5.1 UI設(shè)計

系統(tǒng)主界面為滿足病人需求,通過友好、智能、方便的導(dǎo)航界面向用戶展示系統(tǒng)的各項功能。主界面使用線性布局,每個功能模塊通過圖標+名稱的方式展現(xiàn)。在res\layout\路徑下創(chuàng)建mainscreen.xml布局文件,采用GridView控件布局9個功能模塊,2個EditText控件實現(xiàn)個人檔案模塊的登錄,使用Button按鈕實現(xiàn)登錄及重置功能。主界面UI設(shè)計如圖4所示。

主界面作為導(dǎo)航菜單,在完成布局后,還要實現(xiàn)界面的跳轉(zhuǎn)。在Src路徑下建立MainActivity.java文件,通過setContentView(R.layout.mainscreen)語句將其與布局文件聯(lián)系起來,為布局文件中的控件設(shè)置監(jiān)聽事件,完成界面之間的跳轉(zhuǎn)。跳轉(zhuǎn)導(dǎo)航代碼如下所示:

Intent introduct = new Intent(MainActivity.this, IntroductActivity.class);

startActivity(introduct);//跳轉(zhuǎn)到醫(yī)院簡介的Activity

break;

case 1: //醫(yī)院動態(tài)

…… //跳轉(zhuǎn)到醫(yī)院動態(tài)界面

break;

case 2: //骨科專家

…… //跳轉(zhuǎn)到骨科專家界面

break;

case 3: //特色診療

…… //跳轉(zhuǎn)到特色診療界面

break;

……

}

}

Activity中的任務(wù)是與用戶交互的一組Activity集合,Activity會被按打開順序安排在一個堆棧里。系統(tǒng)中含有多個Activity,其中會有一個在啟動的時候第一個呈現(xiàn)給用戶。

5.2 鏈接服務(wù)器請求

系統(tǒng)需要在客戶端和醫(yī)療應(yīng)用服務(wù)器之間進行通信信息交互,實現(xiàn)數(shù)據(jù)交換和Android客戶端結(jié)果的返回。

Android 要訪問遠程MySQL數(shù)據(jù)庫,先要利用HTTP協(xié)議發(fā)送Request 請求給后臺Web服務(wù)器,Web服務(wù)器端JAVA根據(jù)請求訪問MySQL數(shù)據(jù)庫服務(wù)器,并把讀取的數(shù)據(jù)庫內(nèi)容封裝或?qū)蛻舳说捻憫?yīng)封裝成JSON格式,通過HTTP協(xié)議回傳給Android終端,Android終端再對JSON解析,并進行相關(guān)的UI 處理,該過程如圖5所示[7]。

圖5 基于JSON的數(shù)據(jù)交換過程

5.3 服務(wù)端功能設(shè)計

1) 表現(xiàn)層:使用JSP頁面用于顯示系統(tǒng)界面與用戶交互,項目下的Content目錄用于存放相應(yīng)的JSP文件,CSS文件夾用于存放樣式文件,Img文件夾用于存放項目圖片。

2) 模型層:用JavaBean作為模型,在項目下的Entity文件夾下。用于抽象現(xiàn)實工作中的種種問題,例如專家添加、信息更新等問題。

3) 控制層:使用Struts2作為控制層,Struts2的Action是用來控制調(diào)用哪個頁面的,以及怎么獲取數(shù)據(jù)[8]。在項目下的Web文件夾下以Action結(jié)尾的JAVA文件命名保存。

6 系統(tǒng)實現(xiàn)

6.1 系統(tǒng)服務(wù)端功能的實現(xiàn)

6.1.1對數(shù)據(jù)庫操作

try{

// 調(diào)用JdbcUtils類的getConnection方法連接數(shù)據(jù)庫

conn=JdbcUtils.getConnection();

// 添加數(shù)據(jù)庫的sql語句

String sql="insert into t_profile(id,tel,ke,doctor,name,sex,age,unit,address,diagnosis,opinion,data) values(?,?,?,?,?,?,?,?,?,?,?)"; // 拼接數(shù)據(jù)庫查詢語句

pstm=conn.prepareStatement(sql);

pstm.setInt(1, profile.getId()); //設(shè)置id

pstm.setString(2,profile.getKe()); //設(shè)置科目

pstm.setString(3, profile.getDoctor()); //設(shè)置醫(yī)生

……

pstm.executeUpdate(); //提交pstm對象

}catch(Exception e){

e.printStackTrace();

}finally{

try {

JdbcUtils.release(rs, pstm, conn); //關(guān)閉數(shù)據(jù)庫連接

} catch (Exception e) {

e.printStackTrace(); //打印錯誤信息

}}}

6.1.2 Struts2的配置文件Struts.xml

<!—使用通配符的方式配置Action跳轉(zhuǎn)路徑—>

<!—傳統(tǒng)json格式的數(shù)據(jù)—>

6.2系統(tǒng)客戶端功能的實現(xiàn)

6.2.1系統(tǒng)開始界面實現(xiàn)

Android生成屏幕有三種方式:xml配置生成,通過用戶界面接口生成,直接用代碼生成。根據(jù)MVC原則,UI應(yīng)該與程序邏輯相分離。因此,系統(tǒng)在XML中定義UI結(jié)構(gòu)。此外,一個程序從一個屏幕方案調(diào)整到另一個采用Android應(yīng)用程序的基礎(chǔ)功能單元Activity(android.app.Activity類中的一個對象)實現(xiàn)。復(fù)雜操作在線程中完成,代碼如下所示:

class MyThread implements Runnable {

@Override

public void run() {

service = new UpdataInfoService(SplashActivity.this);

try {

Thread.sleep(2000); //進程休眠2秒

UpdataInfo updataInfo = service.getUpdataInfo(R.string.updataurl);

Message msg = new Message(); //定義數(shù)據(jù)封裝包

Bundle bundle = new Bundle(); //定義數(shù)據(jù)結(jié)構(gòu)

bundle.putSerializable("updataInfo", updataInfo);

msg.setData(bundle);

Message msg = Message.obtain();

msg.obj = updataInfo;

SplashActivity.this.myHandler.sendMessage(msg);

}

};

6.2.2 加載文件類

在UI線程中創(chuàng)建一個Handler(處理后臺進程返回數(shù)據(jù)),負責(zé)處理和綁定到該Handler的線程中的Message(存儲bundle等數(shù)據(jù)格式)。每一個Handler都必須關(guān)聯(lián)一個Looper(不停循環(huán)的遍歷隊列將符合條件的Message一個個的拿出來交給handler進行處理),并且兩者是一一對應(yīng)的。Looper負責(zé)從其內(nèi)部的MessageQueue(存儲從后臺進程中拋回的和當(dāng)前handler綁定的message一個隊列)中拿出一個個Message給Handler進行處理。系統(tǒng)Handler在UI線程中實現(xiàn),經(jīng)過Handler、Message機制,最終返回到UI線程中。

……

URL url = new URL(path); //獲取服務(wù)器路徑

HttpURLConnection conn = (HttpURLConnection)url.openConnection();

conn.setRequestMethod("GET"); //以get方式連接服務(wù)器

conn.setConnectTimeout(5000); //連接超時時間為5秒

if(conn.getResponseCode() == 200){ //判斷是否成功連接

int total = conn.getContentLength(); //得到連接字符數(shù)量

pd.setMax(total);

InputStream is = conn.getInputStream();//得到輸入流

File file = new File(filepath); //下載路徑

FileOutputStream fos = new FileOutputStream(file);//得到輸出流

byte[] buffer = new byte[1024];

int len = 0;

int process = 0;

while((len=is.read(buffer)) != -1){ //循環(huán)輸出

fos.write(buffer, 0, len);

process+=len;

pd.setProgress(process);

Thread.sleep(50); //讓線程睡眠

} ……

}

7 結(jié)束語

通過分析傳統(tǒng)Web端專家預(yù)約系統(tǒng)的運營方式,總結(jié)其中的不足,設(shè)計并開發(fā)基于移動智能客戶端的專家預(yù)約系統(tǒng),彌補了傳統(tǒng)Web應(yīng)用的眾多限制。能夠滿足人們的生活習(xí)慣和應(yīng)用需求,具有較好的應(yīng)用前景。

參考文獻:

[1] ZHANG Hong.Study on Management System for Agricultural Sci-tech Achievement Transformation Funding Project[J].Asian Agricultural Research,2013(1).

[2] Wu Hong, Li Yulong.Analysis of an Evaporator-condenser-separated Mechanical Vapor Compression System [J].Journal of Thermal Science,2013(2).

[3] LIU HouLin,WANG Kai.Experimental investigation of the unsteady flow in a double-blade centrifugal pump impeller[J]. Science China(Technological Sciences,2013(4).

[4] 聞剛.淺論視覺傳達效能在手機UI設(shè)計中的應(yīng)用[J].劍南文學(xué):經(jīng)典教苑,2013(2).

[5] 田智文.手機UI界面設(shè)計的人性設(shè)計[J].藝術(shù)科技,2013(10).

[6] 裴佳迪,馬超,孫仁貴.Android應(yīng)用開發(fā)全程實錄[M].北京:人民郵電出版社,2012.

[7] 龔成瑩,邢敬宏.基于JSON的Android移動終端與PHP及MySQL數(shù)據(jù)通信[J].工業(yè)儀表與自動化裝置,2013(1).

[8] 吳大勇,鄭紫微.基于Android平臺的訪問權(quán)限機制優(yōu)化方案[J].計算機工程,2013(5).endprint

msg.obj = updataInfo;

SplashActivity.this.myHandler.sendMessage(msg);

}

};

6.2.2 加載文件類

在UI線程中創(chuàng)建一個Handler(處理后臺進程返回數(shù)據(jù)),負責(zé)處理和綁定到該Handler的線程中的Message(存儲bundle等數(shù)據(jù)格式)。每一個Handler都必須關(guān)聯(lián)一個Looper(不停循環(huán)的遍歷隊列將符合條件的Message一個個的拿出來交給handler進行處理),并且兩者是一一對應(yīng)的。Looper負責(zé)從其內(nèi)部的MessageQueue(存儲從后臺進程中拋回的和當(dāng)前handler綁定的message一個隊列)中拿出一個個Message給Handler進行處理。系統(tǒng)Handler在UI線程中實現(xiàn),經(jīng)過Handler、Message機制,最終返回到UI線程中。

……

URL url = new URL(path); //獲取服務(wù)器路徑

HttpURLConnection conn = (HttpURLConnection)url.openConnection();

conn.setRequestMethod("GET"); //以get方式連接服務(wù)器

conn.setConnectTimeout(5000); //連接超時時間為5秒

if(conn.getResponseCode() == 200){ //判斷是否成功連接

int total = conn.getContentLength(); //得到連接字符數(shù)量

pd.setMax(total);

InputStream is = conn.getInputStream();//得到輸入流

File file = new File(filepath); //下載路徑

FileOutputStream fos = new FileOutputStream(file);//得到輸出流

byte[] buffer = new byte[1024];

int len = 0;

int process = 0;

while((len=is.read(buffer)) != -1){ //循環(huán)輸出

fos.write(buffer, 0, len);

process+=len;

pd.setProgress(process);

Thread.sleep(50); //讓線程睡眠

} ……

}

7 結(jié)束語

通過分析傳統(tǒng)Web端專家預(yù)約系統(tǒng)的運營方式,總結(jié)其中的不足,設(shè)計并開發(fā)基于移動智能客戶端的專家預(yù)約系統(tǒng),彌補了傳統(tǒng)Web應(yīng)用的眾多限制。能夠滿足人們的生活習(xí)慣和應(yīng)用需求,具有較好的應(yīng)用前景。

參考文獻:

[1] ZHANG Hong.Study on Management System for Agricultural Sci-tech Achievement Transformation Funding Project[J].Asian Agricultural Research,2013(1).

[2] Wu Hong, Li Yulong.Analysis of an Evaporator-condenser-separated Mechanical Vapor Compression System [J].Journal of Thermal Science,2013(2).

[3] LIU HouLin,WANG Kai.Experimental investigation of the unsteady flow in a double-blade centrifugal pump impeller[J]. Science China(Technological Sciences,2013(4).

[4] 聞剛.淺論視覺傳達效能在手機UI設(shè)計中的應(yīng)用[J].劍南文學(xué):經(jīng)典教苑,2013(2).

[5] 田智文.手機UI界面設(shè)計的人性設(shè)計[J].藝術(shù)科技,2013(10).

[6] 裴佳迪,馬超,孫仁貴.Android應(yīng)用開發(fā)全程實錄[M].北京:人民郵電出版社,2012.

[7] 龔成瑩,邢敬宏.基于JSON的Android移動終端與PHP及MySQL數(shù)據(jù)通信[J].工業(yè)儀表與自動化裝置,2013(1).

[8] 吳大勇,鄭紫微.基于Android平臺的訪問權(quán)限機制優(yōu)化方案[J].計算機工程,2013(5).endprint

msg.obj = updataInfo;

SplashActivity.this.myHandler.sendMessage(msg);

}

};

6.2.2 加載文件類

在UI線程中創(chuàng)建一個Handler(處理后臺進程返回數(shù)據(jù)),負責(zé)處理和綁定到該Handler的線程中的Message(存儲bundle等數(shù)據(jù)格式)。每一個Handler都必須關(guān)聯(lián)一個Looper(不停循環(huán)的遍歷隊列將符合條件的Message一個個的拿出來交給handler進行處理),并且兩者是一一對應(yīng)的。Looper負責(zé)從其內(nèi)部的MessageQueue(存儲從后臺進程中拋回的和當(dāng)前handler綁定的message一個隊列)中拿出一個個Message給Handler進行處理。系統(tǒng)Handler在UI線程中實現(xiàn),經(jīng)過Handler、Message機制,最終返回到UI線程中。

……

URL url = new URL(path); //獲取服務(wù)器路徑

HttpURLConnection conn = (HttpURLConnection)url.openConnection();

conn.setRequestMethod("GET"); //以get方式連接服務(wù)器

conn.setConnectTimeout(5000); //連接超時時間為5秒

if(conn.getResponseCode() == 200){ //判斷是否成功連接

int total = conn.getContentLength(); //得到連接字符數(shù)量

pd.setMax(total);

InputStream is = conn.getInputStream();//得到輸入流

File file = new File(filepath); //下載路徑

FileOutputStream fos = new FileOutputStream(file);//得到輸出流

byte[] buffer = new byte[1024];

int len = 0;

int process = 0;

while((len=is.read(buffer)) != -1){ //循環(huán)輸出

fos.write(buffer, 0, len);

process+=len;

pd.setProgress(process);

Thread.sleep(50); //讓線程睡眠

} ……

}

7 結(jié)束語

通過分析傳統(tǒng)Web端專家預(yù)約系統(tǒng)的運營方式,總結(jié)其中的不足,設(shè)計并開發(fā)基于移動智能客戶端的專家預(yù)約系統(tǒng),彌補了傳統(tǒng)Web應(yīng)用的眾多限制。能夠滿足人們的生活習(xí)慣和應(yīng)用需求,具有較好的應(yīng)用前景。

參考文獻:

[1] ZHANG Hong.Study on Management System for Agricultural Sci-tech Achievement Transformation Funding Project[J].Asian Agricultural Research,2013(1).

[2] Wu Hong, Li Yulong.Analysis of an Evaporator-condenser-separated Mechanical Vapor Compression System [J].Journal of Thermal Science,2013(2).

[3] LIU HouLin,WANG Kai.Experimental investigation of the unsteady flow in a double-blade centrifugal pump impeller[J]. Science China(Technological Sciences,2013(4).

[4] 聞剛.淺論視覺傳達效能在手機UI設(shè)計中的應(yīng)用[J].劍南文學(xué):經(jīng)典教苑,2013(2).

[5] 田智文.手機UI界面設(shè)計的人性設(shè)計[J].藝術(shù)科技,2013(10).

[6] 裴佳迪,馬超,孫仁貴.Android應(yīng)用開發(fā)全程實錄[M].北京:人民郵電出版社,2012.

[7] 龔成瑩,邢敬宏.基于JSON的Android移動終端與PHP及MySQL數(shù)據(jù)通信[J].工業(yè)儀表與自動化裝置,2013(1).

[8] 吳大勇,鄭紫微.基于Android平臺的訪問權(quán)限機制優(yōu)化方案[J].計算機工程,2013(5).endprint

猜你喜歡
客戶端服務(wù)器數(shù)據(jù)庫
通信控制服務(wù)器(CCS)維護終端的設(shè)計與實現(xiàn)
縣級臺在突發(fā)事件報道中如何應(yīng)用手機客戶端
傳媒評論(2018年4期)2018-06-27 08:20:24
孵化垂直頻道:新聞客戶端新策略
傳媒評論(2018年4期)2018-06-27 08:20:16
基于Vanconnect的智能家居瘦客戶端的設(shè)計與實現(xiàn)
電子測試(2018年10期)2018-06-26 05:53:34
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
得形忘意的服務(wù)器標準
計算機網(wǎng)絡(luò)安全服務(wù)器入侵與防御
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
郯城县| 互助| 平湖市| 莒南县| 武陟县| 永城市| 集安市| 乐都县| 蒲城县| 奉化市| 易门县| 定安县| 吉木萨尔县| 筠连县| 廊坊市| 莱西市| 来宾市| 永胜县| 海淀区| 临汾市| 巴林左旗| 庄河市| 乌拉特中旗| 肥城市| 桑植县| 绵竹市| 蒲江县| 获嘉县| 沙河市| 南岸区| 来凤县| 竹山县| 德惠市| 洛扎县| 泸溪县| 大同县| 定结县| 包头市| 武川县| 娱乐| 乐东|