摘 要: 探討遠程醫療咨詢系統的功能、結構、設計及關鍵實現技術。系統基于WAMP架構開發應用,綜合運用頁面靜態化技術與緩存技術,大大減輕服務器端數據讀取壓力,提高了系統的響應速度,對各類醫療咨詢系統構建有普遍推廣價值。
關鍵詞: 遠程醫療;咨詢系統;WAMP
隨著現代醫療技術信息化應用的發展進步,部隊廣大官兵渴求通過網絡享受到醫院專家教授們優質的醫療建議與服務,為此開發了基于WAMP的遠程醫療咨詢系統,平臺依托政工網開發建設,以信息化手段為廣大官兵宣傳健康知識、在線答疑解惑。實踐表明,該系統拓展了醫院的服務功能,有效提高了醫院服務質量,官兵不需要遠行便可問診一線城市知名專家,既避免經濟浪費又享受到了高效優質的醫療服務。系統的推廣為合理使用信息化資源服務部隊官兵,履行姓軍為戰使命任務發揮了示范作用。
1 WAMP技術
WAMP是在Windows服務器上使用Apache、MySQL和PHP(AMP)的集成安裝環境,可以快速安裝配置Web服務器,搭建動態網站或服務器開源軟件[1-3]。AMP擁有良好的兼容度,配置環境友好,搭建測試環境方便,集成使用可組建起強大的Web應用程序平臺。PHP混合了C、Java、Perl以及自創的語法,既可將程序嵌入HTML文檔中執行,還可執行編譯后代碼和優化代碼運行,可以用C、C++進行程序擴展,支持幾乎所有流行的數據庫以及操作系統。MySQL數據庫的核心線程是完全多線程化,支持多種平臺、多處理器運行;通過高度優化的類庫實現SQL函數庫,支持聚合函數,可以在同一查詢中使用不同的數據庫表。基于WAMP的設計實現能夠為遠程醫療咨詢系統提供快速、高效、穩定的技術支持。
2 系統架構設計
系統架構設計是遠程醫療咨詢系統設計的一項重要工作,根據系統的具體情況:醫院科室多、專家教授數量大、即時咨詢與在線留言交互頻繁、管理端與用戶端對實時查詢訪問速度要求高等功能需求,醫療咨詢系統采用表示層、邏輯層及數據層3層結構以B/S模式分層設計。表示層負責內容展示,在線交互,用戶在線注冊、信息管理、在線咨詢、提問評論、問題反饋等,同時按規則建立安全邏輯,確保信息傳輸的唯一性、隱私性;邏輯層是表示層與數據層的橋梁,通過獲取表示層發起的請示,操作數據層進行數據傳遞,將數據層返回的數據信息傳遞至表示層;數據層定義、協調數據的安全性、完整性、負責對邏輯層數據訪問進行響應,該層由數據庫服務器實現,如MySQL等。
3 PHP+MySQL在醫療咨詢系統中的應用
3.1系統模塊設計
遠程醫療咨詢系統包括人員信息管理子系統、內容管理子系統、留言咨詢管理子系統、信息安全子系統。如圖1所示,其中人員信息管理子系統包括管理在線用戶注冊、個人信息的修改、站內好友的互動,在線值班員登錄及信息處理、基本信息維護,專家教授的圖文信息、醫療專長、值班時間安排,系統管理員對站內人員分組管理、人員登錄情況管理、過程監督管理等功能;留言咨詢管理子系統包括管理用戶在線實時咨詢管理、站內留言咨詢的發布,值班員可對咨詢問題指派答疑科室,科室專家進行在線答復,提問者在線評分,按分數、熱度等標準進行消息推薦等功能;內容管理子系統包括對系統欄目進行定制、欄目內容發布的管理,對來訪者文章評論的管理、根據健康知識的訪問熱度及當前社會醫療的關注點等指標進行內容推薦等功能;信息安全管理子系統實現對用戶分組的封閉性管理,人員及問答信息錄入、維護審核機制,個人隱私控制系統,通過內置防水墻分析系統數據,實時過濾垃圾信息,對灌水等惡意行為自動運行回收站機制,避免由于違規信息而導致網站停運,減輕運營管理壓力。
3.2信息管理系統
靜態頁面是指在服務器端僅含HTML以及JS,CSS等客戶端運行腳本的頁面,它是由客戶端提出訪問頁面請求,WEB服務器確認并載入后將該頁面以包的形式傳遞回瀏覽器。因靜態頁面無需解析和連接數據庫便直接發送數據,可大大減輕服務器壓力、提高服務器負載能力,大幅提升頁面打開速度和網站整體打開速度。信息管理子系統關注的是新聞、公告、健康知識類的信息,此類信息一經上傳后往往修改頻率不高,為滿足高并發瀏覽與SEO優化的需求,利用PHP模板替換方法對該類信息實現頁面靜態化,就是使網站指定信息頁面以靜態HTML的形式展現在訪客面前,系統后臺核心操作中建立整欄目與單模塊更新、部分更新與單條更新相結合的方法實現靜態化生成控制。頁面靜態化功能圖如圖2所示。關鍵代碼如下:
<?php
header(Content-type:text/html;charset=utf-8);
function file_get_con($filename){//模板讀取函數
$fp=fopen($filename,r);
$content=fread($fp,filesize($filename));
fclose($fp);
return $content;
}
$ filename = template.html;//模板樣式
$cont=file_get_con($filename);//讀取模板文件內容
$title=title;$text=text;
$cont=str_replace(<{title}>,$title,$cont);
$cont=str_replace(<{text}>,$text,$cont);
//將模板變量text,title替換為文章內容,文章標題
WriteHtml(20030601001.html,$cont);
//寫入生成后的靜態文件內容到news.html文件
Function WriteHtml($file,$cont){
$fp=fopen($filename,w);
fwrite($fp,$cont);
fclose($fp);}
?>
3.3 留言咨詢子系統
留言咨詢子系統是遠程醫療咨詢系統的核心功能,包括在線留言和即時咨詢兩大功能,即時咨詢主要采用即時通信工具引用技術使注冊用戶與在線值班員、值班醫生進行在線即時交流,優點是實時、高效,缺點在于同一時刻只能進行單一交流,咨詢問題不能進行數據留存,工作成果無法存儲數據實現資源共享。在線留言系統的引入解決了以上不足,注冊用戶可以向站內指定醫院的某科室某專家提出問題,由值班員協調相關的專家教授對問題進行答復,因使用該功能將接受大量操作過程對數據系統的查詢、讀寫請求,為使網站運行能夠滿足高并發性需求,引入了PHP中的Memcached緩存技術。
Memcache是高性能分布式內存緩存服務器,通過緩存數據庫查詢結果,減少數據庫訪問次數,以提高動態Web應用的速度。它使用“Key=>Value”方式組織數據,可允許不同主機上多個用戶同時訪問該緩存系統,一般用于大型網站使用。Memcached使用內存緩存數據,當PHP等客戶端與Memcached服務建立連接之后,其存取對象實際上是放置在內存中的,并非保存在cache文件中,因此可以減少數據庫連接、查詢操作,減輕了數據庫負載,提高了腳本的運行速度,實現更加高效的系統效果。其核心代碼如下:
<?php
require_once(′memcached-client.php′);
//包含memcached類文件
$options=array(
′servers′=>array(′192.168.104.68′),
′debug′=>true,
′compress_threshold′=>5120,
′persistant′=>false);
//服務地址、數據壓縮、連接等選項設置
$memcached=new memcached($options);
$sqlstr=′select*from table_ask′;
$key=md5($sql);
//若無緩存數據,把緩存數據寫入memcached
if(!($datas=$memcached->get($key)))
{
$conn=mysql_connect(′localhost′,′jkws′,′jkws123′);
mysql_select_db(′hxsd′);
$result=ms_query($sqlstr);
$datas[]=ms_object($result)
//將結果集數據保存以供下次使用。
$memcached->add($key,$datas);
}
else{//使用緩存數據$datas}
?>
本文針對醫療咨詢系統運行過程中交互頻繁和讀取服務器信息數據量大的特點,設計并實現了基于WAMP的遠程醫療咨詢系統。靜態化方法與緩存技術的應用對減輕服務器壓力、提高咨詢服務質量提供了強有力的技術支持,大大節約了硬件資源投入,縮短了開發時間與成本,使系統具有較強的可維護性與可擴展性,對各類醫療咨詢系統的建立與維護具有較好的借鑒價值。
參考文獻
[1] DAVID LANE[美].PHP & MYSQL WEB數據庫應用開發指南[M].南京:東南大學出版社,2006.
[2] 邵煜.PHP和MYSQL WEB開發[M].北京:機械工業出版社,2005.
[3] NARAMORE[美].PHP5、APACHE、MYSQL網絡開發[M].北京:電子工業出版社,2005.
[4] 郭泉成,雷長海.基于.NET的醫學實驗室監控平臺設計[J].數字通信,2011(05):77-80.