江曉鵬 俞云 程曉青 趙富寬


[摘要] 隨著中國改革開放,中國的經濟飛速發展,特別是信息化,智能化,網絡化。我國的醫療體系改革也一直在不斷深化中,對各級醫院的信息化和規范化的要求越來越高,越來越全。特別是對于中小型醫院,信息化投入不夠多,信息化水平還有待提高,如何提高中小醫院的信息化水平和工作效率,是中小醫院的一項問題。這里針對于當前工作所在醫院的實際情況和所碰到問題,結合所學的計算機設計和編程經驗,設計、架構和實現了醫院病理自動查詢系統,提高了該醫院的工作效率,也是為解決中小醫院所碰到的問題的提供一種信息化解決途徑。
[關鍵詞] MVC;STRUTS;自動查詢;歷史查詢;修改次數;顏色聲音提示
[中圖分類號] R302 [文獻標識碼] A [文章編號] 1672-5654(2018)03(a)-0151-03
隨著醫療體系的不斷完善和改革,我國的醫療事業迅速發展,保障的人群也越來越多,人們也越來越關注身體健康。隨著的是醫院的門診、住院量增加,對于醫院也是可挑戰和機遇,如果能更好地利用信息化,網絡化,智能化來武裝自己,不僅提高了工作效率、工作質量[1-2],也對人們來說是一種好的體驗。但對于中小醫院來說,信息化投入資金有限,信息化程度不全,這就需要醫院信息化工作人員,另辟蹊徑,解決矛盾。該課題就該醫院當前遇到病理報告查詢問題提出解決方案[3]。
1 需求分析
目前醫院遇到以下問題:醫生給患者做手術的同時,會取一部分標本,給予病理科鑒定,在手術過程中病理科立即鑒定,但報告需要打印送出,而且需要電話通知,兩部門中間還有段距離,這影響了工作效率,效應時間也滯后。
該文根據以上分析,設計基于MVC的STRUTS框架的WEB系統,即醫院病理自動查詢系統,既有較強針對性,也有通用性和網絡共享能力。通過架構此WEB系統,解決了之前人工方式的滯后性,即實現了實時性,也兼顧了歷史的記錄。提高了工作效率和信息化程度[4-5]。
此系統有以下特點:①簡約的系統操作界面。整個系統界面簡單,明了,避免醫護人員閱讀的難度。②系統全自動化查詢。全自動化查詢,無需人工介入,當有新發布的病理報告,自動顯示在最上面。③可查詢歷史記錄和導出。實現了歷史記錄的翻閱和導出功能,以備案。④新消息聲音和顏色提示。當有新報告或修改時,顯示在最上面,且顏色區別和聲音提示。
2 總體設計
STRUTS是基于MVC設計模式的WEB應用框架,在STRUTS作為控制器來建立模型與視圖的數據交互,提供了MVC的一個清晰的框架[6]。
基于上述理論,該次采用了基于J2EE的MVC的STRUTS框架。具有可用性,可擴展性,已維護性特點[7-8]。
基于以上描述本系統采用設計系統結構圖見圖1。
3 詳細設計
依照醫院信息化要求,和該醫院現有矛盾的特點,結合自己對手術室醫護人員的咨詢的調查,該系統功能需求如下:①病理報告保存時,能及時在該系統查詢到該報告。②系統最新的報告或最新修改的報告顯示在最上面。③當病理報告修改時,重新發布,插入一條新紀錄,記錄修改次數。④當有新報告或重新修改報告時,聲音提示,且修改過的報告顏色區分。⑤能查詢歷史記錄和每次的修改記錄。⑥右鍵可選擇“導出到 Microsoft Excel”導出到Excel表。
系統定時刷新,自動查詢病理報告,查詢的報告與數據庫中進行比對,是否已存在該患者病理報告,如無,則插入一條新記錄,如果存在該患者報告,則比較發布時間是否一致,如不同,則認為修改過記錄,插入一條新記錄,修改次數加1;如果發布時間一致,則抓取本機web頁面,查看該頁面是否已經顯示,已經顯示則結束,如果該頁面沒有,則認為是新消息,提示語音,如果修改次數不為0,則認為修改過報告,顏色區分提醒。具體業務流程見圖2。
系統需要歷史記錄表記錄每次查詢的報告數據,包括申請號、姓名、手術間、報告日期、報告醫生、性別、年齡、申請科室、病區、檢查結論、修改次數、是否修改。見表1。
4 系統實現
下面是該系統的開發和運行環境:①開發語言:J2EE企業框架,JAVA編程語言,基于MVC的STRUTS框架,JSP界面。②數據庫:SQLSERVER 2008。③開發工具:ECLIPSE。④WEB服務器:TOMCAT。⑤硬件環境: CPU四核2.0以上,內存4G,硬盤500G。⑥運行環境:WINDOWS XP,2000,WIN7及以上操作系統,Internet Explorer 及搜狗,360等瀏覽器
開發病理自動查詢系統的過程中,遵循著MVC模式的理念,采用STRUTS框架開發,界面采用JSP,業務層包裝DAO與數據庫交互,通過ACTION控制業務流。由于該系統系統代碼過多,所以該文只用關鍵部分代碼闡述基于MVC的STRUTS框架的方法和過程。
4.1 Action業務流
String newmsg=“0”;
for(int i=0;i {HosBlxx bl=(HosBlxx) l.get(i); HosBlxx queryBl= blxx.queryHosBlxx(bl); if(queryBl.getID()>0) {if(!(queryBl.getReportTime().equalsIgnoreCase(bl.getReportTime()))) {//如果有修改,修改次數加1 bl.setXgcs(queryBl.getXgcs()+1); blxx.insertHosBlxx(bl); bl.setSfxg(1);
newmsg=“1”;
}else{ //如果無修改,取得修改次數
bl.setXgcs(queryBl.getXgcs());} }
else //如果有新增報告,修改次數為0
{bl.setXgcs(0);
blxx.insertHosBlxx(bl);
bl.setSfxg(0);
newmsg=“1”;
}
queryList.add(bl);
}
request.setAttribute(“newmsg”,newmsg);
request.setAttribute("blxx", queryList);
return“success”;//返回數據
4.2 JSP頁面的JS腳本的處理