萬 杰
(湖州職業技術學院 物流與信息工程學院, 浙江 湖州 313000)
目前,醫院的信息化業務正從傳統的PC端向手機、PDA等移動終端發展。安卓和蘋果等生態系統的APP,由于存在系統兼容性差、開發成本較高、用戶獲取較難、用戶粘度較低等問題,較難在智慧醫院建設中推廣。微信是一款有10多億用戶群體的移動應用。而且,圍繞著微信又有諸如訂閱號、公眾號、小程序等生態體系。其中的微信公眾號主要面向企業級用戶,以提供更加便捷的服務為主要目的,具有跨平臺、用戶粘度高、認知度高、易推廣、二次開發生態環境較好等優點。因此,微信醫療信息化應該是智慧醫院建設和發展的重點方向[1]111-115 [2]86-87 [3]273-275。
本研究擬開發一個基于微信公眾號的醫院預約掛號系統。該系統利用WebService技術和醫院HIS系統數據進行通訊,采用PHP和Mysql語言編程,可滿足三級甲等醫院對預約掛號的需求,同時也可作為智慧醫院建設的一部分技術和內容進行推廣。
基于微信公眾號的醫院預約掛號系統采用由數據層、業務層和表示層構成的三層架構設計,主要由微信客戶端、微信開放平臺服務器、醫院外網服務器和應用開發后端服務器四部分組成。其中,應用開發后端服務器操作系統采用Centos,Web服務主要采用Apache,數據庫采用MySQL。前端開發框架為Vue.js,后端開發框架為ThinkPHP。
微信開放平臺技術是醫院預約掛號系統的支撐技術,類似蘋果IOS或Android的底層架構技術,主要包括Access_token技術、模板消息接口技術和基礎消息能力技術,可提供基礎性服務,如用戶權限、發送消息接口、模板接口等。
1.Access_token技術 Access_token是微信公眾號全局唯一的接口調用憑據,微信公眾號在調用各接口時都需要使用Access_token,其有效時間為7 200 ms,主要作用是獲取用戶的微信賬號信息,它可以為以后的推送服務提供保障。一般來講,通過第三方用戶唯一憑證Appid和第三方用戶唯一憑證密鑰Appsecret可獲取Access_token,并最終獲取Openid。Openid作為微信應用的全程唯一標識符,是微信公眾號給用戶分配的唯一且不重復的標識。
2.模板消息接口技術 模板消息接口技術在微信公眾號中用于向用戶發送重要服務通知,如掛號或退號成功、就診時間提醒、就診評價等與病人互動的服務,都需要通過模板消息服務來完成。認證后的微信公眾號可以申請模板消息功能入口,但在模板消息調用時需要模板ID和模板中各參數的賦值內容。
3.基礎消息能力技術 當用戶通過微信公眾號向服務方發送消息時,微信服務器會將數據包發送到開發者填寫的URL上,開發者可以根據用戶發送的消息內容,利用基礎消息能力技術豐富應用內容。
PHP是一種解釋性語言,也是一種容易學習和使用的開發語言,其語法特點類似于C語言,且加入了面向對象的概念,因此具有較強的實用性[4]50-51。相比Java,其主要優點是編程速度快、部署方便,其缺點是安全性不如Java高。Mysql是一種開源數據庫技術,廣泛應用于網站類項目。
在本項目的開發過程中,我們主要使用PHP和Mysql技術。其中的PHP框架,選擇國內廣泛使用的ThinkPHP 5。
醫院內部系統龐大而繁雜,其中的HIS系統是它的主要支撐系統。HIS系統在對外進行數據對接時使用WebService技術。WebService采用XML標準配置應用程序,以方便不同系統之間的信息交互。
在智慧醫院概念提出之前,醫院掛號服務的主要方式有電話掛號、窗口掛號和網上掛號等幾種。隨著智能手機的普及和智慧醫院的建設,網上掛號逐漸轉移到手機,窗口掛號基本被自助機掛號替代。
通過微信公眾號進行門診掛號服務的優點是:(1)可以預約就診時間,系統根據數據分析,可以將時間誤差控制在10分鐘之內,從而大大節省病人的候診時間,減少病人在醫院的滯留時間。(2)可以自助操作,不需要第三方人員幫助。(3)不需要單獨安裝APP[5]77-81。
以下是基于微信公眾號的醫院預約掛號系統的功能設計:
安全性設計是該系統的重要組成部分。在微信開放平臺上,該系統分為前臺、中臺和后臺三部分。其中,前臺面向用戶,負責功能性業務;中臺面向醫院信息科,負責信息的抽取和轉發;后臺面向開發者,負責數據的邏輯性業務。通過微信公眾號構建用戶權限體系,可以確保數據信息的安全可靠性[6]68-70。
在智慧醫院建設中,公立醫院,尤其是大型的三甲醫院應走在前列。考慮到國家有關政策的延續和變化,基于微信公眾號的醫院預約掛號系統的設計必須考慮功能擴展問題,通過二次開發技術,為其他廠商接入該系統提供便利。
該系統能通過微信平臺提供推送、回復服務。如:通過設置關鍵字,能主動回復用戶在微信窗口的留言;通過利用定時器技術,能向用戶定時推送號源提醒服務等。
用戶綁定就是利用WebService技術,建立個人微信賬號與醫院HIS系統中病人賬號的關聯。它是預約掛號系統的核心技術。該技術是微信平臺與醫院HIS系統之間實現信息共享的橋梁,主要內容包括綁定號源數據、綁定家庭賬戶等。其功能模塊的流程如圖所示(參見圖1)。

圖1 微信用戶綁定功能模塊流程圖示
基于微信公眾號的醫院預約掛號系統需要通過WebService服務,才能與醫院的HIS系統聯通,因此需要有一套完整的接口來規范數據的交互[7]1 927-1 937 [8]152-157。由接口提供標準的對接方式,由醫院提供WebService服務,以便系統調用,并通過前置服務部署至外網。接口文檔應提供方法名、出入參數(參數的大小寫、格式等)。數據傳輸格式統一采用XML,編碼為UTF-8。根據預約掛號的實際需要,接口應具有相應的功能(參見圖2)。

圖2 預約掛號功能點設計圖示
在設計接口文檔時,應詳細標明參數名稱、參數類型、參數說明、是否可空等內容,以便與醫院的HIS系統對接溝通。表1以預約掛號接口為例,展示了相應的部分內容,其他接口與之類似(參見表1)。

表1 預約掛號數據入參出參表
基于微信公眾號的醫院預約掛號系統的業務流程如圖所示(參見圖3)。用戶進入醫院微信公眾號后,首先要綁定用戶,然后根據病情選擇科室或醫生,再選擇就診日期和就診時間段(系統規定每人每天只能掛兩個號源)。當就診病人確定后,系統就會顯示“掛號成功”。此時,在微信公眾號中會收到系統“掛號成功”的通知。如果信息錯誤,則可以退號或重新掛號[9]53-55 [10]262-264。號源確定后,患者可于指定時間去醫院就診。患者到醫院后,在導醫臺或自助機取號繳費。在得到具體的診室信息后,整個預約掛號流程便自然結束。

$appid=$res[’appid’];
$appsecret=$res[’appsecret’];
$url = ’/cgi-bin/token?grant_type=client_credential&appid=’
$url_get =$url.$appid .’&secret=’ . $appsecret;
$json = json_decode ( $this->curlGet ( $url_get ) );
其中,appi和appsecret代表每一個公眾號的唯一標識符。用以上代碼訪問微信開放平臺,繼而獲取json。access_token值就在json中。
$code = request()->param(’code’); //通過code獲得openid
$baseUrl = urlencode(’http://’.$_SERVER[’HTTP_HOST’].
$_SERVER[’REQUEST_URI’].$_SERVER[’QUERY_STRING’]);
$url = $this->__CreateOauthUrlForCode($baseUrl);
Header(“Location: $url”).
$dataBase = db(’Medical_dept’);
$array_dept = $dataBase->select();
$this -> assign(’array_dept’, $array_dept);
先將科室和科室子列表同步到本地數據庫,再利用PHP代碼獲取科室信息,最后通過Vue.js技術將信息呈現到微信客戶端,讓患者進行選擇。
$ksdm = request()->post(’ksdm’);//科室代碼選擇該科室下可以掛號的醫生
$begin_day=date(’Y-m-d’,strtotime($showtime . ’+1 day’));//從第二天開始掛號
$end_day=date(’Y-m-d’,strtotime($showtime . ’+7 day’));//最長可以掛7天后的號源
$parm = array (
’code’ => ’6’,
’mess’=> $this->ws_token.’@’.$this->ws_name.’@’.$begin_day.’@’.$end_day.’,
’ref_mess’=>’mess’,
).
根據排班日期、科室代碼、醫生代碼、科室名稱和醫生姓名,到系統中申請號源。申請號源的具體程序如下:
$pbrq = request()->param(’pbrq’);
$ksdm = request()->param(’ksdm’);
$ysdm = request()->param(’ysdm’);
$ksmc = request()->param(’ksmc’);
$ysmc = request()->param(’ysmc’).
病人先登錄微信,進入醫院微信公眾號,選擇相應的醫生或科室,然后選擇就診時間。為方便預約,病人可以選擇7天之內沒有被預約掛滿的醫生。
病人發起請求后,系統會將醫生信息、病人信息、就診日期、就診時間、所選科室等信息傳送到服務器端程序;服務器端程序在對數據進行加密處理后,傳給WebService服務器;然后由WebService服務器請求HIS系統,完成號源的確認。號源確認完成后,數據會再依次傳遞給用戶。這樣,整個掛號流程就完成了。
掛號完成后,系統會發送一條提醒信息。其中,$description代表用戶接收到的信息,Access_token通過每間隔2小時完成一次調用來獲取。Qrcode代表微信開放平臺提供的接口技術,最終,調用開放平臺的接口完成推送。實現程序如下:
$description =“您已成功預約[”.$pbrq.“][”.$haoyuan_time.“][”.$ksmc.”]
[“.$ysmc.”]第“.$xuhao.”號,預約流水號為:“.$sqxh.” 感謝您對掛號平臺的支持! ”;
$access_token = $wxUser[’access_token’];
$qrcode_url=’https://api.weixin.qq.com/cgi-bin/message/custom/
send?access_token=’.$access_token;
$post=$this->api_notice_increment($qrcode_url,$data).
病人進入預約掛號查詢界面,選擇想要退號的號源,點擊退號確認按鈕。系統發起的流程和掛號相似。但退號只需一個參數$sqxh,無需其他信息參數。實現程序如下:
$sqxh = request()->post(’sqxh’);
$id = request()->post(’id’);、
header ( ’Content-Type: text/html; charset=UTF-8’ );
$client = newSoapClient ($this->ws_url);
$parm = array (
’mess’ => $this->ws_token.’@’.$this->ws_name.’@’.$sqxh.’@微信退號’,
’ref_mess’=>’mess’,
).
總之,國家“十四五”規劃明確提出要深入開展數字中國建設。在此背景下,智慧醫院建設必將得到蓬勃發展。微信的優點及其使用的廣泛性,使其在智慧醫院建設中發揮重要作用。本研究以三級甲等醫院為實施案例,開發了一個基于微信公眾號的醫院預約掛號系統,并從需求設計、功能設計和流程設計三個維度進行詳細認證。該系統具有預約掛號和退號等功能,使用便捷,相信在未來的微信智慧醫療服務中會有較高的推廣與應用價值。