坎 香
(江陰職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)科學(xué)系,江蘇 江陰 214400)
隨著互聯(lián)網(wǎng)的發(fā)展,各個(gè)企業(yè)的經(jīng)營(yíng)模式、管理模式也在不斷轉(zhuǎn)變,從傳統(tǒng)的人工管理體制過(guò)渡到信息自動(dòng)化管理體制.網(wǎng)上預(yù)約掛號(hào)系統(tǒng)就是在這樣的大背景下應(yīng)運(yùn)而生的[1-2].基于Web技術(shù)的網(wǎng)上預(yù)約掛號(hào)系統(tǒng)可以借助于遍布全球的Internet進(jìn)行,因此,掛號(hào)可以使患者在任何時(shí)候、任何地點(diǎn)進(jìn)行,可以在本地進(jìn)行,也可以在異地進(jìn)行,從而大大拓展了掛號(hào)的靈活性,并且縮短了傳統(tǒng)掛號(hào)方式中患者排隊(duì)掛號(hào)所需的時(shí)間.[3]本文基于Web,利用ThinkPHP和MYSQL技術(shù)開(kāi)發(fā)江陰中醫(yī)骨傷醫(yī)院預(yù)約掛號(hào)系統(tǒng),是醫(yī)院預(yù)約掛號(hào)的核心部分.使用本系統(tǒng),患者可以根據(jù)自己方便、合適的時(shí)間,通過(guò)掛號(hào)系統(tǒng)選擇適合自己病情需要的科室和專家,使醫(yī)院門診流量也更加合理化;而系統(tǒng)管理員也可以在第一時(shí)間了解預(yù)約掛號(hào)的情況,提高醫(yī)院的工作效率.系統(tǒng)基于MVC框架結(jié)構(gòu)的設(shè)計(jì)模型,保證了系統(tǒng)的安全性.
系統(tǒng)采用了基于ThinkPHP的MVC框架模式,以Web信息系統(tǒng)的三層體系結(jié)構(gòu)提供服務(wù).三層結(jié)構(gòu)的三層包括用戶界面層、業(yè)務(wù)層、數(shù)據(jù)庫(kù)服務(wù)層這三層.本系統(tǒng)用視圖作界面在客戶端瀏覽器顯示;服務(wù)器端以ThinkPHP語(yǔ)言編寫的程序作控制器,接受用戶輸入,接收請(qǐng)求并決定調(diào)用哪個(gè)模型構(gòu)件去處理請(qǐng)求,然后確定用哪個(gè)視圖來(lái)顯示模型處理返回的數(shù)據(jù).以MYSQL作數(shù)據(jù)模型存儲(chǔ)資源及狀態(tài).
在上述架構(gòu)上實(shí)現(xiàn)江陰中醫(yī)骨傷醫(yī)院預(yù)約掛號(hào)系統(tǒng)功能結(jié)構(gòu)圖如圖1所示.
圖1 系統(tǒng)功能結(jié)構(gòu)圖
通過(guò)系統(tǒng)需求分析,本系統(tǒng)的功能主要包括兩塊,前臺(tái)用戶操作及后臺(tái)管理.
前臺(tái)用戶操作功能又分為兩塊模塊:醫(yī)生用戶模塊和病人用戶模塊.其中前臺(tái)醫(yī)生用戶功能模塊主要包括:醫(yī)生查詢預(yù)約掛號(hào)信息、修改密碼、瀏覽醫(yī)院公告信息.而前臺(tái)病人用戶功能模塊主要包括:
患者瀏覽醫(yī)院公告信息、修改自己的密碼、注冊(cè)、登錄、快速檢索醫(yī)生信息、預(yù)約掛號(hào)、患者查詢自己的預(yù)約掛號(hào)信息、取消已預(yù)約掛號(hào)等功能.當(dāng)患者注冊(cè)并登錄該平臺(tái)后,可以瀏覽到醫(yī)院所有醫(yī)生一周內(nèi)的出診時(shí)間,以便患者根據(jù)自己的病情需要、自己方便的時(shí)間進(jìn)行預(yù)約掛號(hào).預(yù)約成功后,預(yù)約信息查詢功能及時(shí)反饋病人的所有預(yù)約信息,包括:預(yù)約掛號(hào)流水編號(hào)、預(yù)約人的真實(shí)姓名、預(yù)約的專家、預(yù)約的時(shí)間,同時(shí)還提供在有效時(shí)間內(nèi)取消預(yù)約的操作.
后臺(tái)管理員模塊主要包括:醫(yī)院公告信息管理、科室管理、醫(yī)生信息管理、門診醫(yī)生出診信息管理、預(yù)約掛號(hào)管理等功能,具體描述如下:可以查看所有預(yù)約掛號(hào)信息,可以按預(yù)約編號(hào)查詢某個(gè)特定預(yù)約掛號(hào)信息;對(duì)醫(yī)院公告信息進(jìn)行添加、編輯、刪除、瀏覽操作;對(duì)醫(yī)生賬戶進(jìn)行添加、刪除、編輯、查看操作;可以添加門診醫(yī)生、編輯門診醫(yī)生出診信息、刪除門診醫(yī)生,其中門診醫(yī)生的添加應(yīng)從現(xiàn)有醫(yī)生中進(jìn)行資格篩選添加;對(duì)醫(yī)院所有科室進(jìn)行添加、刪除、編輯、查看操作.
MYSQL使用C和C++編寫,可以保證源代碼的可移植性.
根據(jù)系統(tǒng)的分析,數(shù)據(jù)庫(kù)表中包括7張數(shù)據(jù)表:預(yù)約掛號(hào)信息表(表名:think_appointment)、門診醫(yī)生出診信息表(表名:think_outdoctor)、系統(tǒng)管理員表(表名:think_admin)、醫(yī)生信息表(表名:think_doctor)、病人信息表(表名:think_patient)、科室信息表(表名:think_offices)、醫(yī)院公告信息表(表名:think_announcement),部分表的結(jié)構(gòu)如下:
(1)預(yù)約掛號(hào)表用于預(yù)約查詢,預(yù)約管理功能.
表1 預(yù)約掛號(hào)表
(2)門診醫(yī)生信息表用于顯示醫(yī)院門診醫(yī)生出診一覽表.
表2 門診醫(yī)生信息表
(3)會(huì)員表用于會(huì)員管理、會(huì)員注冊(cè)信息以及會(huì)員登錄信息.
表3 會(huì)員表
下面將介紹本系統(tǒng)中的三個(gè)功能模塊,并著重探討系統(tǒng)預(yù)約掛號(hào)模塊、病人用戶查詢預(yù)約掛號(hào)模塊和取消預(yù)約掛號(hào)模塊的具體實(shí)現(xiàn)方案.
(1)病人預(yù)約掛號(hào)功能模塊.門診醫(yī)生一周出診預(yù)覽表以表格的形式顯示,在表格中會(huì)具體顯示每個(gè)門診醫(yī)生可預(yù)約的時(shí)間,在可預(yù)約的時(shí)間下方能顯示“預(yù)約”,以及該醫(yī)生當(dāng)天已預(yù)約的總數(shù)和一共可以預(yù)約的總數(shù),而在不能預(yù)約的時(shí)間下方是空白的,這樣就更加簡(jiǎn)潔直觀,當(dāng)患者注冊(cè)并登錄后,可以選擇自己方便的時(shí)間,以及適合自己病情的醫(yī)生,通過(guò)點(diǎn)擊表格中的“預(yù)約”超鏈接,此時(shí)系統(tǒng)會(huì)對(duì)用戶的數(shù)據(jù)進(jìn)行驗(yàn)證,即驗(yàn)證病人是否已經(jīng)預(yù)約過(guò)同一天相同的醫(yī)生,驗(yàn)證通過(guò)后系統(tǒng)會(huì)跳轉(zhuǎn)到填寫預(yù)約信息界面,讓患者填寫自己的身份證、患者的真實(shí)姓名等.為了檢查患者填寫預(yù)約數(shù)據(jù)的合法性,以及防止某些人惡意地掛號(hào),系統(tǒng)會(huì)對(duì)病人的身份證號(hào)是否有效、真實(shí)姓名是否含有非法字符進(jìn)行合法性驗(yàn)證.預(yù)約信息正確填寫提交后,數(shù)據(jù)庫(kù)自動(dòng)更新,增加該醫(yī)生已預(yù)約人數(shù)一位,并反饋預(yù)約編號(hào)等信息供病人用戶確認(rèn).由于每天的預(yù)約掛號(hào)量大,每個(gè)病人用戶預(yù)約成功都會(huì)生成一個(gè)唯一的預(yù)約編號(hào),本系統(tǒng)預(yù)約編號(hào)的生成是通過(guò)定義一個(gè)自動(dòng)生成流水號(hào)方法并調(diào)用該方法實(shí)現(xiàn)的,流水號(hào)由當(dāng)前年份后兩位+兩位月份+兩位日期+4位流水編號(hào)構(gòu)成,該方法可以自動(dòng)生成當(dāng)日的流水號(hào)從1~9999個(gè)流水號(hào),這樣的流水編號(hào)可以確保每個(gè)用戶每天的預(yù)約編號(hào)都是唯一的.該方法主要代碼如下:
function AutoCreateNumberID($tablename_filed)
{
$db=new OrdersModel();
$nowyearmonthday=strval(date("ymd",time()));
$firstnumber=$nowyearmonthday."0001";
$return_number_id="";
$condition[$db->$tablename_filed]=$firstnumber;
$counts=$db->where($condition)->count();
if($counts==0)
{
$return_number_id=$firstnumber;
return $return_number_id;
}
else
{
$getmaxarray=$db->where($condition)->order($tablename_filed.' desc')->find();
$getmaxarrayID=$getmaxarray[$tablename_filed];
$return_number_id=$getmaxarrayID+1;
return $return_number_id;
}
}
(2) 病人用戶查詢預(yù)約掛號(hào)模塊.當(dāng)用戶預(yù)約成功后會(huì)跳轉(zhuǎn)到預(yù)約信息查詢界面供用戶確認(rèn),此時(shí)用戶可以看到該用戶所有的預(yù)約信息,包括具體的預(yù)約編號(hào)、真實(shí)姓名、預(yù)約專家、預(yù)約時(shí)間.當(dāng)然,為了更加方便快捷,用戶也可以根據(jù)預(yù)約編號(hào)快速查詢特定的預(yù)約掛號(hào)信息.
(3) 取消預(yù)約掛號(hào)模塊.如果病人用戶因?yàn)榕R時(shí)有事或時(shí)間排不開(kāi)而改變主意,想取消預(yù)約,用戶可以先查詢到該預(yù)約掛號(hào)信息,此時(shí)系統(tǒng)會(huì)分兩種情況:若是不在有效時(shí)間范圍內(nèi)取消預(yù)約,系統(tǒng)顯示“該預(yù)約已過(guò)期”,用戶無(wú)法取消預(yù)約;否則系統(tǒng)提供“取消該預(yù)約”操作,當(dāng)用戶點(diǎn)擊“取消該預(yù)約”超鏈接后,系統(tǒng)會(huì)彈出“確定要取消該預(yù)約嗎?”的提示對(duì)話框,當(dāng)用戶在此確認(rèn)后才會(huì)取消該預(yù)約.由于刪除后數(shù)據(jù)是不可恢復(fù)的,因此,必須進(jìn)行兩次確認(rèn),確保不因誤操作而產(chǎn)生不良影響.
(1)易與醫(yī)院其他系統(tǒng)整合.本系統(tǒng)是江陰中醫(yī)骨傷醫(yī)院信息管理系統(tǒng)的子系統(tǒng),通過(guò)兩個(gè)月的試運(yùn)行,發(fā)現(xiàn)其可以完美地與江陰中醫(yī)骨傷醫(yī)院已有的化驗(yàn)單網(wǎng)上查詢系統(tǒng)、醫(yī)院醫(yī)生排班信息管理系統(tǒng)相結(jié)合.這樣病人可以及時(shí)獲取自己的化驗(yàn)信息,并針對(duì)當(dāng)前化驗(yàn)信息決定是否需要再次預(yù)約掛號(hào)就診;通過(guò)與醫(yī)院醫(yī)生排班信息管理系統(tǒng)結(jié)合,還可以將醫(yī)生出診變化的信息及時(shí)提供給病人,以便病人取消本次預(yù)約或更換其他醫(yī)生預(yù)約就診.如此,使得醫(yī)院的相關(guān)信息得到最大的交互與共享,以便最大化地提高醫(yī)院的工作效率.
(2)易用性與界面友好性.病人用戶第一次使用此平臺(tái),只需填寫一些簡(jiǎn)單的注冊(cè)信息即可注冊(cè)成功,注冊(cè)信息包括郵箱賬號(hào)、登錄密碼、聯(lián)系電話等,而身份證件號(hào)碼、真實(shí)姓名等這些信息是在病人登錄后并需要預(yù)約某位醫(yī)生時(shí)才輸入并驗(yàn)證其合法性,方便了患者的使用.同時(shí),為了更好地吸引用戶的眼球,本系統(tǒng)的注冊(cè)界面非常友好,使用了主流的jQuery及AJAX技術(shù)實(shí)現(xiàn)了注冊(cè)頁(yè)表單客戶端的各種交互效果,用很友好的交互效果牢牢地把用戶留在網(wǎng)站上.具體實(shí)施如下:首先進(jìn)行表單不為空驗(yàn)證,若某數(shù)據(jù)未填寫,在相應(yīng)控件后面顯示“必須填寫”提示信息;其次進(jìn)行郵箱格式是否正確、密碼長(zhǎng)度及字符是否合法、確認(rèn)密碼與登錄密碼是否一致、聯(lián)系電話格式是否正確等合法性驗(yàn)證,若不合法,顯示相應(yīng)提示信息;最后為了提高系統(tǒng)的運(yùn)行速度和操作的人性化,本系統(tǒng)會(huì)員注冊(cè)頁(yè)采用AJAX異步刷新技術(shù)實(shí)現(xiàn)用戶email賬號(hào)是否已被占用驗(yàn)證,即當(dāng)用戶進(jìn)行注冊(cè)操作時(shí),用戶填寫結(jié)束無(wú)需點(diǎn)擊“提交”按鈕就可以知道在email賬號(hào)控件中輸入的賬號(hào)是否可以進(jìn)行注冊(cè),email賬號(hào)是否已經(jīng)被其他用戶所占用.表單各種驗(yàn)證效果圖如圖2所示.
圖2 jQuery和AJAX技術(shù)驗(yàn)證表單效果圖
(3)增加了掛號(hào)誠(chéng)信度考核.目前國(guó)內(nèi)已有不少的預(yù)約掛號(hào)系統(tǒng),但很少有系統(tǒng)對(duì)網(wǎng)上預(yù)約無(wú)故爽約的病人用戶有相應(yīng)的解決措施.由于預(yù)約掛號(hào)是開(kāi)放的、免費(fèi)的,為防有些人隨意掛號(hào)而浪費(fèi)寶貴的掛號(hào)資源,本系統(tǒng)對(duì)網(wǎng)上預(yù)約爽約三次的病人進(jìn)行系統(tǒng)提示,不允許該患者繼續(xù)預(yù)約掛號(hào).如要恢復(fù)預(yù)約,需到江陰中醫(yī)骨傷醫(yī)院人工掛號(hào)窗口解鎖.三次爽約系統(tǒng)提示效果圖如圖3所示.
圖3 三次爽約系統(tǒng)提示效果圖
(4)使用ThinkPHP開(kāi)發(fā)技術(shù)提高系統(tǒng)可擴(kuò)展性.不同于國(guó)內(nèi)許多面向數(shù)據(jù)流的結(jié)構(gòu)化開(kāi)發(fā)技術(shù),本系統(tǒng)使用ThinkPHP面向?qū)ο蠹夹g(shù)進(jìn)行開(kāi)發(fā),更容易對(duì)系統(tǒng)開(kāi)發(fā)、管理,更有效地控制了系統(tǒng)開(kāi)發(fā)過(guò)程中所遇到的風(fēng)險(xiǎn),從而使得該系統(tǒng)的可擴(kuò)展性得到了提高.
參考文獻(xiàn):
[1]薛萬(wàn)國(guó).對(duì)醫(yī)院信息系統(tǒng)作用的再認(rèn)識(shí)[C].全軍衛(wèi)生計(jì)算機(jī)應(yīng)用學(xué)術(shù)交流會(huì)論文集,2000:238-241.
[2]徐吟哇.計(jì)算機(jī)醫(yī)院門診管理模式的研究[J].醫(yī)療設(shè)備信息,2006(8):21-22.
[3]李剛榮.數(shù)字化建設(shè)促進(jìn)醫(yī)院發(fā)展[J].重慶醫(yī)學(xué),2004,33(9):1321-1322.