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

?

基于AJAX技術(shù)的住院費(fèi)用查詢子系統(tǒng)設(shè)計與開發(fā)

2012-04-12 20:49
關(guān)鍵詞:主鍵頁面客戶端

(1.泰山職業(yè)技術(shù)學(xué)院,山東 泰安 271000; 2.泰山醫(yī)學(xué)院,山東 泰安 271016)

住院收費(fèi)管理系統(tǒng)是醫(yī)院信息管理系統(tǒng)的一個功能模塊,包括住院病人費(fèi)用結(jié)算、費(fèi)用錄入、費(fèi)用查詢和打印、欠款管理等功能。費(fèi)用查詢和打印是患者和家屬最關(guān)心的一個功能,能夠提供給病人或者家屬查詢和打印自己各種費(fèi)用的使用情況,在查詢信息時,需要通過后臺服務(wù)器訪問數(shù)據(jù)庫對該用戶性進(jìn)行查找和確認(rèn),才能顯示相應(yīng)的信息。在傳統(tǒng)的服務(wù)器端的Web應(yīng)用程序中,任何與服務(wù)器的交互都要求刷新頁面,當(dāng)服務(wù)器處理客戶端的請求時,客戶只能空閑等待,降低了Web應(yīng)用的執(zhí)行速度,AJAX技術(shù)在用戶與服務(wù)器之間引入Ajax引擎,用戶執(zhí)行一個操作,系統(tǒng)可以在后臺處理該任務(wù),同時用戶可以繼續(xù)處理其他任務(wù),不需要在提交后等待,從而提高系統(tǒng)性能,使得應(yīng)用程序更加完善和友好[1],在教學(xué)項目的實(shí)踐和應(yīng)用中取得了良好的效果。

1 資料與方法

1.1 資料

系統(tǒng)通過AJAX技術(shù)減少網(wǎng)絡(luò)內(nèi)容傳輸,使用jQuery訪問struts2中的Action, Action獲得響應(yīng)信息,當(dāng)響應(yīng)的信息不是一個簡單的字符串而是一個對象時,采用Json格式進(jìn)行交換,Action不需要使用視圖資源來顯示狀態(tài)信息,由JSON負(fù)責(zé)將Action里的狀態(tài)信息返回給調(diào)用頁面,完成Ajax交互,然后利用jQuery直接獲得JSON格式的數(shù)據(jù),在客戶端直接綁定到數(shù)據(jù)控件,而JSON則可以把傳輸內(nèi)容縮減到純數(shù)據(jù),從而達(dá)到最優(yōu)。

1.2 方法

1.2.1AJAX全稱為“Asynchronous JavaScript + XML”(異步JavaScript和XML),是JavaScript、JSON、CSS、HTML等技術(shù)的綜合。其中HTML是一種文本標(biāo)記語言,不需要編譯,直接由瀏覽器執(zhí)行,它通過HTML元素,標(biāo)簽等標(biāo)記要顯示的網(wǎng)頁中的各個部分[2];JavaScript是一種基于對象和事件驅(qū)動的客戶端腳本語言,被設(shè)計用來給頁面添加交互行為,它可以檢測表單的正確性,實(shí)現(xiàn)Ajax讀、寫、改變HTML頁面的架構(gòu)和美化網(wǎng)頁效果等[3];JSON是一種適合AJAX應(yīng)用的輕量級數(shù)據(jù)交換格式,JSON中的值(value)是用雙引號括起來的字符串、數(shù)值、對象或者數(shù)組等,而且這些結(jié)構(gòu)可以嵌套,使得JSON表達(dá)數(shù)據(jù)有無限的可能,它既可以表達(dá)一個簡單的key/value,也可以表達(dá)一個復(fù)雜的Map或List,易于閱讀和理解的[4]。

1.2.2jQuery是一個優(yōu)秀的跨瀏覽器的JavaScript框架,提供豐富的屬性和方法,能更方便地處理HTML 文檔、事件、實(shí)現(xiàn)動畫效果,并且為網(wǎng)站提供AJAX交互,使設(shè)計人員不需要在HTML里面插入一堆JS來調(diào)用命令,只需定義id即可[5]。

1.2.3Struts2是在WebWork基礎(chǔ)上發(fā)展起來的一個MVC框架,實(shí)現(xiàn)頁面跳轉(zhuǎn)與邏輯控制的分離,提供AJAX支持,通過AJAX標(biāo)志增加互動性和靈活性,而且使用簡單。

2 結(jié) 果

住院費(fèi)用查詢子系統(tǒng)的開發(fā)采用MyEclipse集成Struts2和jQuery框架,數(shù)據(jù)庫設(shè)計采用Oracle 10g,同時利用AJAX技術(shù)提高頁面訪問效率。

2.1 系統(tǒng)結(jié)構(gòu)

住院費(fèi)用查詢子系統(tǒng)可以分為4個模塊:前臺顯示模塊、客戶端處理模塊、服務(wù)器端響應(yīng)模塊和數(shù)據(jù)庫管理模塊。其中前臺顯示模塊為用戶提供各項費(fèi)用的查詢和打印,包括住院的費(fèi)用總統(tǒng)計,和每天的費(fèi)用詳細(xì)清單;客戶端處理模塊獲取頁面元素,得到用戶的住院編號,與服務(wù)器交互,更新客戶端頁面,響應(yīng)用戶事件;服務(wù)器端響應(yīng)模塊獲取提交數(shù)據(jù),驗(yàn)證數(shù)據(jù)合法性;數(shù)據(jù)庫管理模塊訪問數(shù)據(jù)庫,返回數(shù)據(jù)庫信息。

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

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

病歷病人基本信息:病歷號(主鍵,recordId),姓名(pName),年齡(age ),家庭住址(address),電話(phone)。

住院病人基本信息:病歷號(外鍵,recordId)、住院編號(主鍵,pId)、科室(department)、病區(qū)(room)、床號(bed)、住院日期(inDate)、出院日期(outDate)、主治醫(yī)師(doctorId)、醫(yī)保費(fèi)用類別(insuranceType),費(fèi)用總額(totalCost)、醫(yī)保自付比例(rate)、應(yīng)付費(fèi)用總額(payCost),結(jié)算情況(settlement)。

病人費(fèi)用信息:住院編號(外鍵,pId),項目名稱(feeName)、項目編碼(主鍵,feeId)、規(guī)格(specification)、計量單位(unit)、單價(price)、數(shù)量(feeNumber)、項目費(fèi)用(feeCost=price*feeNumber)、日期(date)。

其中住院病人信息通過“recordId”(外鍵)和病人基本信息中的病歷號(主鍵)關(guān)聯(lián),可以查詢病人姓名和住院費(fèi)用等基本信息,通過“pId”(主鍵)和病人費(fèi)用信息中的pId(外鍵)關(guān)聯(lián),查詢每天的費(fèi)用信息和總額。病人費(fèi)用信息又可以通過”feeId”(外鍵)與其他子系統(tǒng)中的數(shù)據(jù)庫表如藥品數(shù)據(jù)庫等相關(guān)聯(lián),完成數(shù)據(jù)的查詢。

2.2.2類設(shè)計

①建Pinfo(病歷病人信息)類、Patient(住院病人信息)類和Pcost(病人費(fèi)用信息)實(shí)體類,屬性分別和數(shù)據(jù)庫中各個字段相對應(yīng),添加setter、getter方法。

②建PAllcost和PEverydaycost類,分別包含pId、pName、pCost屬性和pId、pName、feeName、 feeNumber、price、 feeCost、date屬性,添加setter、getter方法,和在頁面上要顯示信息一致。

③建PatientManager類,創(chuàng)建queryAllCost()方法,連接數(shù)據(jù)庫,根據(jù)傳入的住院編號參數(shù)(pid),查詢病人的費(fèi)用總額信息,如果找到信息則把結(jié)果存放在pallcost對象中(PAllcost類型)中返回否則提示錯誤信息。創(chuàng)建queryEverydayCost()方法,根據(jù)住院日期和出院日期,查詢每一天的費(fèi)用信息,存放在peverydaycostlist并返回。

④建action,如PAction.java,定義pid,pallcost和peverydaycostlist屬性,new一個PatientManager對象,定義方法給pallcost和peverydaycostlist賦值,這樣action能夠通過pid獲得AJAX傳遞的住院編號,AJAX也能通過json獲得返回的結(jié)果。

3 討 論

3.1 環(huán)境配置

①下載必要的jar包和jquery-*.*.*.js加入到web工程,包括json類庫、struts2的包和struts2-json-plugin.jar,它可以將Struts2 Action中的結(jié)果直接返回為JSON。

②創(chuàng)建struts.xml,添加專為ajax使用的package,配置包時繼承json-default包,因?yàn)樵谠摪虏庞衘son類型的Result,以總的費(fèi)用查詢?yōu)槔糠株P(guān)鍵代碼如下:

pAllcost。pId, pAllcost。pName, pAllcost。pCost, //param定義包含pAllcost的屬性

3.2 頁面設(shè)計

①創(chuàng)建index.jsp,共有兩個查詢,一是住院信息和總費(fèi)用的查詢,二是每天的費(fèi)用信息查詢,返回的結(jié)果是費(fèi)用的列表。為頁面中的按鈕事件注冊單擊事件,把這些事件和校驗(yàn)事件代碼單獨(dú)的放到一個querycost.js文件里。要使用jQuery,需要在頁面之中引入jQuery庫,另外還需引入自定義的querycost.js文件,如下:

JSP頁面需要一個文本框、兩個按鈕和一個空白的div層,用于顯示服務(wù)器端返回的處理結(jié)果,按鈕的單擊事件觸發(fā)queryAll()方法。部分代碼如下:

住院編號: //焦點(diǎn)離開事件觸發(fā)校驗(yàn)

onclick="queryAllcost()" />

function queryAllcost(){

$.getJSON("PAction?pid="+$("#pid").val(),null,function callback(data){

var cost= eval("("+data+")");//解析JSON var Allcost=" ";

Allcost+= "住院編號: "+cost.pallcost.pId+" 姓名 : "+ cost.pallcost.pName+" 應(yīng)付費(fèi)用信息: "+ cost.pallcost.pCost;}) //顯示病人的住院編號,姓名和應(yīng)付費(fèi)用信息$("#result").html(Allcost);}}

②PAction部分代碼如下: private String pid; private PALLcost pallcost;

private List peverydaycostlist; private PatientManager patientmanager

省略getter和setter方法

public String returnPallcost() {

patientmanager.queryAllCost(pid);// 根據(jù)病人的ID獲取數(shù)據(jù)

return SUCCESS; }}

3.3 意義

住院費(fèi)用查詢子系統(tǒng)作為java-WEB項目的一部分,采用AJAX技術(shù)提高了用戶體驗(yàn),為整個系統(tǒng)的設(shè)計和開發(fā)打下良好的基礎(chǔ),提高了整個系統(tǒng)的性能和實(shí)用性,同時也在教學(xué)項目的實(shí)踐和應(yīng)用中取得了良好的效果。

[1] 張桂元,賈燕楓,姜波.征服Ajax Web2.0快速入門與項目實(shí)踐(Java) [M].北京:人民郵電出版社,2006:3-10.

[2] Oliver D, Morrison M. HTML與CSS入門經(jīng)典[M].第7版.陳秋萍,譯.北京:人民郵電出版社,2007:10-15.

[3] 葉青.完全手冊:HTML+CSS+JavaScript實(shí)用詳解[M].北京:電子工業(yè)出版社,2008: 90-100.

[4] 楊旭士.基于JQuery框架的Web查詢視圖設(shè)計與實(shí)現(xiàn)[J].計算機(jī)與現(xiàn)代化雜志,2010,8(2):128-129.

[5] 丁波,晁愛農(nóng). 基于Struts2框架的AJAX開發(fā)研究[J].計算機(jī)工程與設(shè)計雜志,2009,30(16):3910-3912.

猜你喜歡
主鍵頁面客戶端
基于Go 實(shí)現(xiàn)的分布式主鍵系統(tǒng)研究
刷新生活的頁面
基于外鍵的E-R圖繪制方法研究
如何看待傳統(tǒng)媒體新聞客戶端的“斷舍離”?
縣級臺在突發(fā)事件報道中如何應(yīng)用手機(jī)客戶端
孵化垂直頻道:新聞客戶端新策略
數(shù)據(jù)庫主鍵設(shè)置探討
客戶端空間數(shù)據(jù)緩存策略
網(wǎng)站結(jié)構(gòu)在SEO中的研究與應(yīng)用
淺析ASP.NET頁面導(dǎo)航技術(shù)