急性心梗患者随访管理系统的设计与实现

2020-03-13 12:14江海戬苏哲周长勇辛立强
关键词:S架构急性心肌梗死

江海戬 苏哲 周长勇 辛立强

摘要:  针对急性心肌梗死患者出院后的健康管理问题,本文设计开发了一套急性心肌梗死患者的信息化实施方案。整个系统采用B/S架构,使用Python语言编写和SQLite进行数据存储,主要功能包括数据收集和信息交流两大类,数据收集为收集保存患者数据,供医生在后台进行数据统计和分析,信息交流包含写文章、发邮件和进行意见反馈。测试结果表明,该系统各种功能均表现正常,具有较好的兼容性和稳定性。该研究对提高急性心肌梗死患者生存率,促进医生和患者出院后的沟通交流具有重要意义。

关键词:  急性心肌梗死; 随访系统; B/S架构; Python

中图分类号: TP315; R319 文献标识码: A

收稿日期: 2019-06-11; 修回日期: 2019-10-27

基金项目:  青岛市科技局基金项目(17-3-3-31-nsh)

作者简介:  江海戬,男,硕士研究生,主要研究方向为计算机技术应用。

通信作者:  辛立强,男,硕士,副教授,硕士生导师,主要研究方向为计算机技术应用。Email: xlqiang62@163.com

急性心肌梗死(acute myocardial infarction,AMI)是临床常见的急性心血管疾病,病情重,变化快,死亡率高[1]。中国心血管病防治工作在取得初步成效的同时,又面临新的严峻挑战[2]。近年来,中国心血管病患病率及死亡率仍处于上升阶段,今后10年心血管病患病人数仍将快速增长[2]。根据在52个国家进行的INTERHEART研究,与心肌梗死相关的潜在可纠正危险因素包括吸烟、糖尿病、高血压、腹型肥胖、蔬菜水果摄入量少、运动少、酒精摄入过多和载脂蛋白(Apo)B/Apo A比例(5∶1),90%的冠心病归因于上述危险因素[3]。全球疾病负担系列研究表明,改善上述危险因素可减少冠心病发生率83%~89%,减少冠心病死亡率78%~85%[4]。与西方国家对于该疾病的诊疗模式相比,我国急性心肌梗死患者数量众多,心脏康复及出院后随访工作开展滞后。为了更好的解决该问题,本文设计开发了急性心梗患者随访管理系统,高效的进行心肌梗死患者随访工作。该系统利用计算机大容量的存贮设备进行数据收集存储和不受空间限制的互联网进行医患信息交流,有效提高了医院服务水平[5]。同时,结合目前医院信息系统的发展水平现状和用户自身条件,采取B/S架构模式构造随访系统,通过实时的对患者血压、血糖、心率等信息进行收集,不仅起到及时预防治疗的作用,还推进了大数据分析对医学研究的进程。

1 系统功能

系统主要功能分为数据收集、查写博客、收发邮件和进行意见反馈,系统用例图如图1所示。该系统分为医生、患者和管理员3种访问方式,分别对应不同的系统界面和拥有不同的系统功能,功能结构如图2所示。

1.1 数据收集

患者数据收集包含记录管理患者的基本信息、出院信息、复诊信息、再次住院信息和每日身体各项指标。患者初诊时,医生登录系统,对患者的身份证号、姓名、性别和年龄等基本信息进行注册记录,在患者治疗出院后,医生可以对患者的出院情况进行记录管理,例如出院号、出院时间及患者出院时的身体各项指标。身体各项指标包含了High density liptein cholesterol、Low density lipoprotein chesterol、Brain natriuretic peptide、射血分数、Alanine aminotransferase和Aspartate aminotransferase等信息。为进一步调查分析患者出院后身体健康状况的变化,患者出院后医生和患者可以在系统的每日情况功能模块中记录每天服药、血压、心率和血糖等信息。部分患者可能在出院后又突发某些疾病再次住院,详细的再住院情况往往对医生了解患者身体状况也起到较大作用,由此系统提供再住院模块功能,由医生记录管理,再住院包含了再次住院的原因和花费等信息。面对部分慢性疾病,仅靠初诊诊断不够,还需要多次复诊进行确认。医生可以通过复诊模块记录患者复诊时各项身体指标情况及医生建议和用药等信息。通过数据收集模块,医生可方便在后台对患者信息进行查看和统计分析,从而进行相关医学研究。

1.2 查写博客

查写博客包含写文章和查看文章。对文章进行评论、收藏和点赞,更换头像,填写简介,对作者进行关注,优秀文章推送及新消息提醒。

在查写博客功能中,医生可以分享流行病预防、疾病介绍和手术心得等相关文章,供其他医生和患者查看学习;撰写文章由医生完成,可以给文章设置分享权限,例如僅自己、仅医生和全部。在博客首页可以查看所有医生的文章,在“我的博客”栏中查看和管理自己所写的文章,通过关注和收藏等操作,可以快速找到和查看自己感兴趣的文章内容。患者也可以查看文章,对文章进行收藏、评论和对医生进行关注等。

1.3 收发邮件

收发邮件包含查看邮件、写邮件、群发邮件、星标邮件、编辑通讯录、已发送邮件、草稿箱、垃圾箱和回收站。在收发邮件中,医生与医生之间可以进行医学上的信息交流,医生对患者可以实现病情解答,相关信息通知。患者可以给医生发送邮件进行相关病情询问,患者与患者之间可以进行病情交流。

1.4 意见反馈

在意见反馈中,医生不仅可以查看回复患者对医院服务方面的意见和建议,还可以根据对系统的使用,向管理员提出建议和提出对误删信息进行恢复等操作的申请。管理员不仅可以查看和处理用户提交的意见和建议,还可以查看系统IP访问记录,对各个数据库的数据进行查看修改及系统维护。

2 系统架构

系统架构图如图3所示,系统使用B/S架构,客户端和服务器通过HTTP协议进行数据传输。在应用层上,用户通过Web页面实现信息交互和数据处理;在处理层上,用户实现登录验证、权限验证和数据验证等;在数据层上,用户可实现信息存储、删除、修改和查询。

系统前端主要用HTML5、CSS和JS,使用Bootstrap开源工具包对界面进行美化。前端和后端的数据传输使用Ajax,传输数据格式为Json格式[6-8]。系统后端采用Django开源Web框架,用Python进行代码编写,并用SQLite3进行数据存储[9-11]。

在Django的app设计上,分为医生和患者两类,分别对应以collection、email、blog和feedback命名的app。

3 功能实现

基于B/S架构实现的急性心梗患者随访管理系统,将数据的分析处理集中到服务器上,使医生仅仅通过浏览器就可以进行数据处理,使用简单且实用性强[12-14]。通过调查分析医生界面的设计,选择用电脑浏览器打开的方式,医生界面如图4所示。

用电脑浏览器打开该界面,不仅可以为医生展示更多的信息和功能,而且由于医院电脑设备齐全,更符合实际应用[15-17]。对于患者界面,本研究专门设计开发了适合手机浏览器打开的网页,更加方便患者进行访问,患者界面如图5所示。

在医生界面左侧菜单设计上,使用bootstrap提供的组件,首先通过css中的link引入下载好的bootstrap.css和bootstraptheme.css,然后在ul标签中添加class="nav navpills navstacked ull",其次在ul下的li标签中添加role="presentation"。通过设置li中是否含有class="active",决定该菜单是否处于激活状态。在li中通过添加a标签,跳转不同的url来实现子版中页面信息的不同。

由于患者人数多,每个患者对应的信息较为复杂,为了更好的浏览查看每个患者的相关信息,在医生界面中采用表格的方式展示,通过点击表格中a标签,跳转单独的界面,展示选中患者的相关信息。当点击a标签时,后台在解析url的同时,会取得点击对象的id和点击的内容(例如点击可为复诊信息),并通过该id到数据库中筛选出患者对象,然后根据点击的内容取出对应信息,并与模板渲染,最后返回给用户。

3.1 Form表单验证

系统采用Form表单来处理各种输入框下的账户、密码、填写信息的格式问题以及下拉框和单选框的选择问题等,每个Form继承自django_forms.Form并与相应的models.py下的类对应。当用户将填写的信息发往后台时,Form下的is_valid函数将会直接进行信息验证,如果验证错误,将通过Form下的errors函数取出自定义的错误信息并返回给用户,如果验证正确,便可用Form下的cleaned_data函数中get方法取出数据,进而进行下一步处理。

3.2 URL访问验证

面对不同的用户系统将提供不同的界面访问,在用户通过URL进行访问时,加入信息验证不仅可以为用户提供所需要的数据信息,还可以使其他用户的隐私信息得到保障。相对于django下的cookie模块,用session模块更加便捷安全,当用户登录成功后,通过session记录用户的身份信息。每次当用户的URL请求发起后,系统进行分析并在调用该URL对应的视图函数之前,通过视图函数的装饰器,用request中session完成信息验证。

3.3 模板渲染

前端界面布局采用django母版继承方式,在母版上设计界面和统一布局后,在相应位置留出空间供子版填充,母版上使用{% block xxx1 %}{% endblock %}进行占位。而对于子版先继承母版,则在子版顶部使用{% extends ‘xxx.html %},并在子版中添加{% block xxx1 %}{% endblock %},并在其中间加入相应内容。

前端界面在渲染过程中,需要对后台传递的数据进行进一步的加工处理并展示,由此需要前端界面调用templatetags文件夹下定义的函数来完成处理。同样,需要在界面顶端添加{% load 函数名 %}以及在界面中添加过滤器,在自定义的函数进行数据处理前,需要添加装饰器register.simple_tag,并且注册到tempate库里面。

3.4 文章编写

为了使用户写文章時得到更好的体验,在查写博客功能模块中,采用KindEditor开源的HTML可视化编辑器,不仅方便用户编写文章,而且在一定程度上减小了受到脚本攻击的可能性。当前端在展示从数据库中取得的文章数据时,由于html代码在render之前会先进行转义,所以导致html代码被当成普通字符串处理。使用django.utils.safestring下的mark_safe函数,可正常显示html代码。

面对跨站脚本攻击,缩写为XSS,对于此问题系统后端通过python中的re模块编写,建立白名单过滤策略,对文章内容中的标签及属性进行过滤[18-20]。

4 结束语

本文主要对急性心梗患者随访管理系统进行研究。急性心肌梗死患者随访系统能够促进医生患者交流沟通,保存患者长期随访资料,为患者的服药提供指导。同时,该系统由患者录入自身健康数据,增强了疾病诊疗过程中患者本人的参与感,有利于增加患者服药依从性及生活方式的改变。这些都是降低急性心肌梗死死亡率的关键手段。根据患者出院后每天身体的各项指标,通过BP神经网络对身体健康状况做出预测,建立预测模型是下一步研究的重点。目前该系统运行较成熟,具有可移植性和扩展性,根据不同疾病要求,可应用到其他慢性疾病(如糖尿病,肿瘤化疗患者)的随访,方便推广,具有一定的社会效益和经济效益。该研究具有广阔的市场空间。

参考文献:

[1] 程宝珍, 张小红, 牛娟. 急诊全程优化护理在抢救急性心肌梗死患者中的应用[J]. 护理学杂志, 2012, 27(5): 9-11.

[2] 胡盛寿, 高润霖, 刘力生, 等. 《中国心血管病报告2018》概要[J]. 中国循环杂志, 2019, 34(3): 209-220.

[3] 高润霖. 冠心病疾病负担—中国出路[J]. 中国循环杂志, 2017, 32(1): 1-4.

[4] Ezzati M, Vander Hoom S, Rodgers A, et al. Estimates of global and regional potential health gains from reducing multiple major risk factors[J]. The Lancet, 2003, 362(9380): 271-280.

[5] 程维国. 泰安市中心医院回访信息管理系统的设计与开发[D]. 成都: 电子科技大学, 2014.

[6] 高静, 段会川. JSON数据传输效率研究[J]. 计算机工程与设计, 2011, 32(7): 2267-2270.

[7] 胡章兵, 左良利. 時态JSON数据模型及查询语言处理[J]. 计算机技术与发展, 2019, 29(10): 141-145.

[8] 金鸣, 袁嵩, 刘荣. 利用JSON实现客户端与服务器端通信[J]. 电脑编程技巧与维护, 2018(4): 75-77.

[9] 范文星. 基于Django的网络运维管理系统的设计与实现[J]. 计算机科学, 2012, 39(z1): 175-177.

[10] 岳昆, 王晓玲, 周傲英. Web服务核心支撑技术: 研究综述[J]. 软件学报, 2004, 15(3): 428-442.

[11] 梁效宁, 黄旭, 朱星海. SQLite数据库文件恢复提取技术研究[J]. 计算机科学, 2016, 43(12A): 16-19, 25.

[12] 吴大刚, 肖荣荣. C/S结构与B/S结构的信息系统比较分析[J]. 情报科学, 2003, 21(3): 313-315.

[13] Han xc. Design of communication system based on B/S[C]∥2012 International Symposium on Information Technologies in Medicine and Education. Hokkaido, Japan: IEEE, 2012: 1089-1093.

[14] 林伟婷. C/S与B/S架构技术比较分析[J]. 科技资讯, 2018, 16(13): 15-16.

[15] 韦庆杰, 刘淑坤. 一种Web应用跨浏览器兼容性测试方法[J]. 计算机工程与应用, 2019, 55(5): 55-59.

[16] 刘俊潇, 张敏言. 电脑浏览器交互界面体验分析[J]. 科技视界, 2015(22): 145-147.

[17] 张晓艺. 如何防范基于浏览器的网络威胁[J]. 计算机与网络, 2019, 45(9): 50-51.

[18] 赵跃华, 胡向涛. 网络钓鱼攻击的防御技术及防御框架设计[J]. 计算机应用研究, 2013, 30(6): 1863-1866.

[19] Upasana S, BhattacharyyaD K, Kalita J K. A survey of detection methods for XSS attacks[J]. Journal of Network and Computer Applications, 2018, 118(15): 113-143.

[20] Hiroya T, Kenji Y, Masahiro M, et al. Preventing abuse of cookies stolen by XSS[C]∥ 2013 Eighth Asia Joint Conference on Information Security. Seoul, South Korea: IEEE, 2013: 85-89.

Design and Implementation of Followup Management System for Patients with Acute Myocardial Infarction

JIANG Haijiana, SU Zheb, ZHOU Changyongb, XIN Liqianga

(a. College of Computer Science & Technology; b. Affiliated Hospital, Qingdao Universitya, Qingdao 266071, China)

Abstract:  In order to address the health management problems of patients with acute myocardial infarction after discharge, this paper designs and develops an informationization implementation plan for patients with acute myocardial infarction. The entire system uses the B/S architecture, written in Python and SQLite for data storage. The main functions of the system are divided into two categories: data collection and information exchange. Data collection is to collect and save patient data for doctors to conduct data statistics and analysis in the background. Information exchange includes writing articles, sending emails and giving feedback. The test results show that the various functions of the system are normal, and have excellent compatibility and stability. This study is of great significance to improve the survival rate of patients with acute myocardial infarction and to promote communication between doctors and patients after discharge.

Key words:  acute myocardial infarction; followup system; B/S architecture; python

猜你喜欢
S架构急性心肌梗死
B/S架构下的学生信息管理系统的设计
基于ASP技术下的大学生跳蚤书街平台的设计与实施
基于B/S架构的高校实验管理平台的设计与实现
急性心肌梗死患者的中医辨证治疗分析