刘越
(广州医科大学附属中医医院,广东 广州)
微信小程序,简称小程序。小程序不需要用户下载,又基于微信客户端中。对于开发者而言,开发门槛比较低。相较于普通的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]。