基于Flask的空巢老人健康服务系统的设计

2023-02-08

一、绪论

随着社会经济的飞速发展与医疗技术水平的不断提高, 人口老龄化日趋严重, 空巢老人的数目日益增加。随之而来的矛盾——空巢老人所需要的健康医疗服务和落后的社区医疗之间的矛盾逐渐凸显出来。本课题针对这一矛盾, 以空巢老人的心理健康以及生理健康为出发点, 通过调查研究, 以调查数据为依据, 辅以专业的研究分析, 详尽分析空巢老人的生理心理需要, 从而开发与设计出信息化时代的空巢老人健康服务系统。用以改善这一社会矛盾, 使空巢老人可以得到较为健全的医疗服务。

基于Flask的空巢老人健康信息化服务系统能够对空巢老人的健康实施有效的保障, 当老人遇到突发状况时, 可以一键呼救, 避免因突然发生意外状况却无人照看而导致抢救不及时的情况发生。本系统针对心理方面具有陪伴功能模块, 针对生理方面具有在线挂号模块, 此外还具有多个个性化定制模块, 如定位功能, 本功能可以通过对空巢老人的位置定位, 根据其活动的习惯制定相应的运动建议;再如可开通微信公众号, 与机器人聊天便可获取定制的健康保健的图文知识等。

整个服务系统基于Flask[1]框架, 实现自动化管理与运维, 该系统具有较高的性能与安全, 耦合度低, 操作简单, 性能优越。

二、需求分析

本文设计的系统包括如图1所示, 有如下几个功能: (1) 用户管理; (2) 机构管理; (3) 急救方案管理。

(一) 用户管理

用户管理面向老年人及其家人, 老年人可以在本系统中挂号、预约家政服务、获取定制化服务等。家人可以与老人组成“线上家庭”, 定期收到老人的健康报告和其他的动态。

(二) 机构管理

机构管理包括医疗机构、家政公司、康复中心和社区管理。医疗机构管理中, 老年人可以在先预约挂号、在线咨询医生疾病。家政公司管理中, 老年人可以预约家政公司上门服务。同时, 康复中心管理提供预约康复的服务。在社区管理中, 本系统在线下与社区合作, 组织社区活动, 帮助老人丰富精神世界。

(三) 急救方案管理

本系统通过穿戴设备检测老人的心率、体表温度等一系列生命指征, 老年人一旦遇到突发状况, 通过可穿戴设备 (如美国运营商AT&T推出的Everthere) 返回的信号, 第一时间拨打急救车并通知家人。

三、系统设计

本系统利用Flask开发, 采用B/S结构 (图2) , 基于Linux系统。Flask是由Python语言编写的轻量级web框架, 主要使用扩展实现功能, 因此该系统具有开发性强、维护与更新简单的优点。

(一) 系统后台架构设计

整个系统的后台架构设计[2]如图3所示。

当用户通过Broswer发送http请求时, Nginx首先将静态文件展现给客户端, 然后再将请求转发给gunicorn, gunicorn通过解析http请求, 并调度Flask App服务进程从而实现http响应。gevent是第三方库, 通过greenlet实现协程, 它能够在执行IO操作时, 自动切换协程, 获得极高的并发性能。而且, gunicorn可以结合gevent来进行部署, 因此在高并发场景下可适用。WSGI, 全称Web Server Gateway Interface, 是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。Supervisor[3]是服务器管理工具, 通过fork/exec的方式将这些被管理的进程当作supervisor的子进程来启动, 若该子进程异常终端, 则父进程可以准确的获取子进程异常终端的信息, 通过在配置文件中设置autostart=ture, 可以实现对异常中断的子进程的自动重启[4]。

系统的业务关系如图4所示, 不同的用户登录系统, 具有不同的系统业务。

(二) 数据库设计

SQLAlchemy是一种强大的关系型数据库, 既提供了高层ORM, 也提供了使用数据库原生SQL的底层功能。Flask使用extension (Flask-SQLAlchemy) 控制SQLAlchemy, 从而简化操作。

1. 数据库逻辑设计

在数据库的设计中, “线上家庭”模块设计思路包括“自引用关系”。如果关系的两侧都在一个表中, 这种关系称为“自引用关系”。在老年人及其家庭用户之间, 通过“自引用关系模型”, 老人能够关注家人的动态, 家人也能及时获得老人的健康报告以及运动状况。

2. 数据库编码设计

为解决不同地区不同机构使用该系统的标识问题, 就要建立统一医疗机构编码, 家政公司编码, 康复中心、社区编码以及用户唯一标识。

(1) 医疗机构与康复中心编码

医疗机构与康复中心代码由区域医疗数据中心自主编码与颁发, 同时要代码的全国唯一性。建议前六位采用全国各地行政区划代码, 第七位用1标识医疗机构, 用2标识康复中心, 第八到第十位为医疗机构和康复中心具体编码, 建议采用自增顺序, 第十一位为检校码。

(2) 家政公司与社区编码

家政公司与社区代码前六位采用全国各地行政区划代码, 第七位用3标识家政公司, 用4标识社区, 第八到十位为顺序代码, 第十一位为检校码。

(3) 用户标识

由于各个机构对用户都有一套不同的编码方式, 考虑到全国用户的交叉性, 需要在系统中建立全局标识。建议前六位采用全国各地行政区划代码, 第七到九位为所属社区的具体编码, 第十到十六位为楼号、单元号、门牌号, 第十七到十八位为家庭成员序号。

四、结论

空巢老人服务系统是一个复杂的系统, 参与的机构与人员使得该系统应具有低耦合性、系统稳定的特点。针对这些要求, 运用计算机技术可以实现需求。本系统目前已投入使用, 且效果良好。

摘要:在目前的社会家庭中, 空巢老人的数量越来越多。现运用计算机技术, 基于Flask框架, 利用gunicorn进程管理, 采用B\S模式, 使用关系型数据库MySQL, 开发出一套健康服务系统。在系统中, 老人用户拥有在线挂号、健康咨询、康复护理等服务, 同时家庭成员可与老人组成“线上家庭”, 获取老人的将康报告, 同时不同的机构, 为老人提供不同的服务, 如医疗机构的疾病咨询, 社区的线下活动等。

关键词:健康服务,空巢老人,Flask框架,B\S模式,MySQL

参考文献

[1] 刘历, 章国宝.基于Flask的智能家居服务系统软件设计[J].工业控制计算机, 2017, 30 (02) :109-110.

上一篇:工程变更对工程造价的影响下一篇:工频通信系统下行信号仿真与识别方法的研究