劉越
(廣州醫科大學附屬中醫醫院,廣東 廣州)
微信小程序,簡稱小程序。小程序不需要用戶下載,又基于微信客戶端中。對于開發者而言,開發門檻比較低。相較于普通的APP,推廣成本較低。又較于前幾年較流行的微信公眾號、服務號這種推廣平臺,邏輯性更強,對網頁的展示兼容性更好,操作體驗更佳。一次開發,多端兼容[1,2]。
醫院信息系統邏輯較為復雜。如何實現前端與后臺,后臺與數據庫之間的數據傳遞,且對信息的安全性、數據的保密性有很高的要求。本文主要研究如何將目前流行的后臺框架以及前端技術相互結合起來。使用接口傳遞的方式,解決不同平臺、不同語言編寫的應用之間如何互相調用的問題。通過這樣的結構模型,滿足科室移動化辦公的需求,同時也滿足醫院互聯網化、信息化的需求[3,4]。
目前Lavavel框架已經到了6的版本。筆者在使用該框架時仍然使用的是5.6的版本。
醫院信息系統龐大且復雜。普通的MySQL數據庫是沒辦法滿足醫院的大并發量的訪問需求的。本院部署的是Oracle數據庫。但是,Lavavel框架默認是沒有開放連接Oracle數據庫連接的。所以先要開放PHP的擴展,php_oci8_12c.dll和php_pdo_oci.dll,而且需要用composer安裝yajra/laravel-oci8,配置完成后才可以使用Oracle數據庫。基本配置完成以后,即可開始根據自身的業務邏輯,完成路由、控制器、模型及遷移文件、接口、驗證器等程序部分的編寫[5-7]。
這里舉個例子:如創建 接口的資源
php artisan make:resource 單個資源
php artisan make:resource 集合資源-c[--collection]
在資源中對接口進行描述

在模型中添加訪問器
public function getCourseAttribute($value) {returnenv(‘APP_URL’).$value;
}
創建中間件,允許接口跨域

注冊全局中間件
AppHttpMiddlewareAllowdomain::class
測試接口可以得到如下Jason數據:


通過微信自身的API接口wx.request進行接口的訪問。參數data中可以輸入一個URL進行訪問。如果成功調用,則會返回一個回調函數success。我們可以根據邏輯返回值進行接下來的邏輯處理[8,9]。訪問的地址需要配置一下,建議新增一個配置文件config.js。該JS文件用于定義接口域名以及各個接口地址,如:

Jason數據成功拿到后,我們就可以進行頁面的展示了。展示使用的是HTML+CSS的技術,語法更偏向于VUE,如:

上邊的函數聲明多是使用了Promise調用。這樣的開發雖然方便,你或許還可以接受。但是如果你是維護代碼的人,你就會明白這樣的代碼有多難維護。有可能只是三層的嵌套關系,當然實際中可能更多。舉個例子,用戶登錄拿到UserID,然后再調用別的接口拿到token,最后可能還要調用接口完成別的邏輯。這就意味著層層嵌套,牽一發而動全身[10]。所以我使用的是Async語法進行優化,這樣既可以解決回調地獄的問題,又可以解決代碼難以維護的問題。Async語法簡潔,使代碼可讀性更高。并且能使用try catch捕獲異常,使代碼更加符合思維邏輯。如:

小程序是一種不需要用戶下載安裝的即可使用的應用。它實現了應用“觸手可及”的夢想,也體現了“用完即走”的理念。應用隨處不在又無需安裝卸載。因為其特性,如今,大到電商,小到餐飲企業,都有自己的小程序應用。而Lavavel框架又是比較健壯及安全的。如今對醫院數據信息安全的要求也越來越高。本文想通過以小程序及Lavavel相結合的方式,實現系統跨平臺、跨語言,從而為提高醫院的精細化管理水平提供了一種解決思路[11,12]。