php是非常擅长处理api请求的,以及制作api接口的,像上传数据这种东西几行代码即可实现,我们假设数据库已经准备好了数据,如果没准备好,我们也可以通过模型来快速拼接想要的数据,这里php采用的是ThinkPHP6框架,下边简称TP6,TP的模型数据修改器处理数据非常方便,可以避免很多子查询,提高效率,这里今天不做讨论,我们假设数据已经准备好了,php只需要去读就好。
直接上代码截图:
![c3b3e15e0c82c70a4d48b3fb43d14ec7.png](https://i-blog.csdnimg.cn/blog_migrate/9a43b9fcee3eeb3316aae2a65704849a.jpeg)
这就是最简单的上传操作了,大致思路,查询数据库相关表,按相关地区要求准备数据,$map组成数据,tp6封装了json_encode我们直接json($map)会上传失败,所以使用php原生函数,这样数据就准备好了,接下来,我们调用curl函数,这里我new了一个函数,之前封装好的curl函数,预留了2个入参,只需要传入post的网址和数据就可以提交了,这样一个简单的数据上传功能就实现了。
![029d8fed0130a3ec610131f9186ed9b0.png](https://i-blog.csdnimg.cn/blog_migrate/05fb0f15877fee9261ea77c57ba5a648.jpeg)
其实我们在实战当中代码远远不止这一点,假如我们要上传的数据为10万条,直接查询上传会卡死,或者超时,这就需要我们来完善接口,并且要做到代码复用,需要上传的表很多,不能重复造轮子,这里我用了一个switch来做个判断,根据提交的表明来执行不同的查询语句。
简单说一下思路,入参,$start,$end,$table先switch判断需要提交的表名$table需要where的字段名。
第二步,根据switch获取到的时间字段,例如'RYSJ',来做where查询语句,获取count。
第三步,设定100条数据为一组,for循环一下,进行分页查询,post上传数据。
第四步,for循环结束,输出json格式数据上传情况。
这样我们的上传接口就完善了,可以集成到医院的his系统中,只要给接口 几个参数就可以很方便的上传数据了,也可以单独制作一个前端界面,利用vue之类的很简单。
![2a9ea0a1f0374781d309676f9ae5f6ff.png](https://i-blog.csdnimg.cn/blog_migrate/0b7637747395ed21dbe421f2caeaf9b7.jpeg)
对于上边的实现基本功能还好,但是每次人工来处理还是很麻烦,这时我们可以简单修改一下代码,假如可以集成到his中,我们直接在相关的事件中,做一个执行就好,至于时间段参数,我们可以做个运算,表名称可以根据需要做个for循环。
无法集成到his中的话,可以再弄个定时执行,win下可以做个计划,linux下可以写脚本,只需要修改部分代码,让php脚本定时去做循环上传就好。
假如你会的不是php,而是java或者js,又或者python,实现起来也很简单,无非就是json格式化,以及post请求的问题。