药物不良反应数据分析系统设计与实现

144 篇文章 0 订阅
139 篇文章 0 订阅

摘  要

药物不良反应是使用药物过程中的潜在风险,及时、准确地收集和分析药物不良反应数据可以帮助医疗机构和监管部门更好地管理药物的安全性。通过建立一个药物不良反应数据分析系统,可以及时发现和评估药物的不良反应情况,从而采取相应的措施以保护患者的健康。

基于机器学习的药物不良反应预测系统的设计与实现,本系统的核心功能是通过爬取实海量药物数据,并通过机器学习技术将原始数据存储、计算,并将分析的结果通过开发Web程序以可视化列表形式展示,最终实现不良反应的预测。

本系统基于Flask的编程技术,实现药物可视化系统的构建。介绍了药物可视化系统的开发环境和运行平台、Python编程技术。使用MySQL数据库管理整个系统的后台数据。提高药物不良反应预测准确性:传统的药物不良反应预测方法往往依赖于经验和统计数据,准确性有限。而基于机器学习的方法可以利用大量的药物数据,通过训练模型来预测药物的不良反应,从而提高预测的准确性。

关键词:Flask,药物预测,可视化,机器学习

Abstract

Adverse drug reactions are potential risks in the use of drugs. Timely and accurate collection and analysis of adverse drug reaction data can help medical institutions and regulatory authorities to better manage the safety of drugs. By establishing an adverse drug reaction data analysis system, the adverse drug reactions can be found and evaluated in time, so that appropriate measures can be taken to protect the health of patients.

Design and implementation of adverse drug reaction prediction system based on machine learning. The core function of this system is to obtain massive drug data by crawling, store and calculate the original data through machine learning technology, and display the analysis results in the form of a visual list through the development of a Web program, and finally realize the prediction of adverse reactions.

This system is based on Flask programming technology to realize the construction of drug visualization system. The development environment, operating platform and Python programming technology of drug visualization system are introduced. Use MySQL database to manage the background data of the entire system. Improve the accuracy of adverse drug reaction prediction: Traditional methods of adverse drug reaction prediction often rely on experience and statistical data, and their accuracy is limited. A machine learning-based approach can take advantage of large amounts of drug data and improve the accuracy of predictions by training models to predict adverse drug reactions.

【Keywords】Flask, drug prediction, visualization, machine learning

目  录

摘  要

Abstract

1 绪论

1.1研究背景与现状

1.2论文主要研究工作

2 技术总述

2.1 Pycharm

2.2 MySQL数据库

2.3  Flask框架

2.4 基于Scrapy的网络爬虫技术

2.5 机器学习算法

2.6 本章小结

3 药物不良反应预测分析系统实现

3.1 系统可行性分析

3.1.1可行性研究

3.1.2 经济可行性

3.1.3技术可行性

3.1.4 运行可行性

3.1.5 时间可行性

3.2 系统实现流程

3.3 系统平台架构

3.4 药物数据爬虫设计

3.5 药物不良反应预测程序设计

3.6 本章小结

4 后台系统实现

4.1 开发环境与配置

4.1.1 开发环境

4.1.2 框架配置介绍

4.1.3 数据库的设计

4.2 系统功能模块实现

4.2.1登录认证

4.2.2药物数据管理功能

4.2.3药物数据可视化看板功能

4.3 本章小结

5.1登录功能

5.1.1功能概要

5.1.2详细描述

5.2数据管理功能

5.2.1功能概要

5.2.2详细描述

5.3本章小结

6 总结与展望

6.1 系统开发遇到的问题

6.2  总结与展望

致  谢

注  释

附  录A

附  录B

自动生成三级标题,建议按1……,1.1……,1.1.1……的格式编写;

目录中各章节题序的阿拉伯数字用Times New Roman体,第一级标题用小四号黑体,其余用小四号宋体,1.3倍行距,一级标题顶格,二级标题缩进两字符,三级标题缩进四字符。

1 绪论

1.1研究背景与现状

药物不良反应是指在正常剂量下使用药物时出现的对患者不利的反应。它们可能会导致严重的健康问题,甚至危及生命。因此,准确地预测和分析药物不良反应对于确保药物的安全性和有效性至关重要。

随着大数据技术的发展,医疗领域积累了大量的医疗数据,包括患者的临床数据、药物的化学结构和药理学特性等信息。这些数据为预测和分析药物不良反应提供了丰富的资源和可能性。个体化医疗是指根据患者的基因型、表型和生活方式等个体特征,为其提供个性化的医疗服务。药物不良反应预测与分析系统可以结合个体化医疗的理念,针对每个患者的特点和需求,提供定制化的不良反应预测和分析服务。

生物信息学和计算生物学的发展为药物不良反应预测与分析系统提供了理论和方法支持。通过结合药物的化学结构、基因组学数据、蛋白质组学数据等信息,可以建立预测模型和分析方法,揭示药物不良反应的潜在机制和规律。临床研究的需求: 临床研究人员和药企在新药研发和临床试验中需要准确地评估药物的安全性和毒副作用。药物不良反应预测与分析系统可以为临床研究提供有力的支持,帮助研究人员更好地评估药物的风险和效益,提高临床试验的成功率。

综上所述,药物不良反应预测与分析系统的研究背景涉及药物安全性、大数据技术、个体化医疗、生物信息学、临床研究等多个方面,是医学领域中一个具有重要研究意义和应用前景的课题。

1.2论文主要研究工作

药物不良反应预测与分析系统的设计和实现涉及多个关键方面,包括数据采集、存储、分析、可视化、预警和用户管理等核心功能。以下是一个可能的研究内容及实现方案:

系统需要从多个来源获取药物不良反应相关数据,包括但不限于医院临床数据、患者报告、药物监管机构的报告、科学文献等。可以通过API接口、爬虫技术、数据仓库等方式实现数据的采集和整合。

采集到的数据需要进行存储和管理,建立起完整的数据仓库。可以选择使用关系型数据库或者NoSQL数据库进行数据存储,同时采用备份和灾备机制保证数据的安全性和可靠性。

基于采集到的数据,系统需要开展数据分析工作,包括统计分析、机器学习算法建模等。可以使用统计软件(如R、Python的pandas库等)和机器学习框架(如Scikit-learn、TensorFlow等)进行数据分析,识别药物不良反应的规律和潜在风险因素。

将分析结果以直观的形式呈现给用户,提供图表、报表等可视化界面。可以使用数据可视化工具(如Matplotlib、Seaborn、Tableau等)设计交互式的数据可视化界面,帮助用户快速理解数据分析结果。预警系统: 建立预警机制,及时发现药物不良反应的异常情况并进行预警。可以设置预警规则和阈值,当数据指标超过预警阈值时,系统自动触发预警通知,提醒相关人员采取相应措施。

系统需要具备用户管理功能,包括用户注册、登录、权限管理等。可以设计用户角色和权限体系,区分不同用户的操作权限,保障数据的安全性和隐私性。安全保障: 在系统设计和实现过程中,要注重数据安全和隐私保护。采用加密算法保护数据传输和存储过程中的安全,设置访问控制和身份验证机制确保系统的安全性。用户体验优化: 在系统设计和界面交互方面,要考虑用户体验,使系统操作简单、友好,提高用户的使用满意度和效率。

2 技术总述

2.1 Pycharm

PyCharm是一种Python IDE(Integrated Development Environment,集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮项目管理、代码跳转、智能提示、自动完成单元测试版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。

Python由荷兰数学计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。 [1]  Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言, [2]  随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。 [3]  

Python解释器易于扩展,可以使用C语言C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。 [4]  Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码机器码

由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用Python语言讲授。众多开源的科学计算软件包都提供了Python的调用接口,例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。而Python专用的科学计算扩展库就更多了,例如如下3个十分经典的科学计算扩展库:NumPy、SciPy和matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能。因此Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。2018年3月,该语言作者在邮件列表上宣布Python 2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python 2.7有关的支持,则需要付费给商业供应商。

2.2 MySQL数据库

   MySQL数据库是一种财政的数据库系统,可以和Python语紧密的结合使用,被普遍使用在小型网站上,他的安全财政成本低的特点被广泛使用。

2.3  Flask框架

   Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现。另外,Flask还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。

Flask是目前十分流行的web框架,采用Python编程语言来实现相关功能。它被称为微框架(microframework),“微”并不是意味着把整个Web应用放入到一个Python文件,微框架中的“微”是指Flask旨在保持代码简洁且易于扩展,Flask框架的主要特征是核心构成比较简单,但具有很强的扩展性和兼容性,程序员可以使用Python语言快速实现一个网站或Web服务。一般情况下,它不会指定数据库和模板引擎等对象,用户可以根据需要自己选择各种数据库。Flask自身不会提供表单验证功能,在项目实施过程中可以自由配置,从而为应用程序开发提供数据库抽象层基础组件,支持进行表单数据合法性验证、文件上传处理、用户身份认证和数据库集成等功能。

2-1 Flask框架

Flask主要包括Werkzeug和Jinja2两个核心函数库,它们分别负责业务处理和安全方面的功能,这些基础函数为web项目开发过程提供了丰富的基础组件。Werkzeug库十分强大,功能比较完善,支持URL路由请求集成,一次可以响应多个用户的访问请求;支持Cookie和会话管理,通过身份缓存数据建立长久连接关系,并提高用户访问速度;支持交互式Pythonscript调试,提高用户体验;可以处理HTTP基本事务,快速响应客户端推送过来的访问请求。Jinja2库支持自动HTML转移功能,能够很好控制外部黑客的脚本攻击。系统运行速度很快,页面加载过程会将源码进行编译形成Python字节码,从而实现模板的高效运行;模板继承机制可以对模板内容进行修改和维护,为不同需求的用户提供相应的模板。目前Python的web框架有很多。除了Flask,还有django、Web2py等等。其中Django是目前Python的框架中使用度最高的。但是Django如同Java的EJB(EnterprisePythonBeansPythonEE服务器端组件模型)多被用于大型网站的开发,但对于大多数的小型网站的开发,使用SSH(Struts+Spring+Hibernat的一个PythonEE集成框架)就可以满足,和其他的轻量级框架相比较,Flask框架有很好的扩展性,这是其他Web框架不可替代的。

2.4 基于Scrapy的网络爬虫技术

Scrapy是目前较为成熟的爬虫技术框架,一般采用Python语言开发程序,Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。Scrapy是一个适用爬取网站数据、提取结构性数据的应用程序框架,它可以应用在广泛领域:Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。通常我们可以很简单的通过 Scrapy 框架实现一个爬虫,抓取指定网站的内容或图片。

Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试  

Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。

在本设计中,由于需要使用到药物网站的原始数据,因此需要开发相应的网络爬虫程序完成对药物原始数据的采集,图2-1为爬取中华药物网站的药物

数据的原理流程图。

ScrapyEngine打开一个网站,找到处理该网站的Spider,并向该Spider请求第一个(批)要爬取的url(s);

ScrapyEngine向调度器请求第一个要爬取的url,并加入到Schedule作为请求以备调度;

ScrapyEngine向调度器请求下一个要爬取的url;

Schedule返回下一个要爬取的url给ScrapyEngine,ScrapyEngine通过DownloaderMiddlewares将url转发给Downloader;

页面下载完毕,Downloader生成一个页面的Response,通过DownloaderMiddlewares发送给ScrapyEngine;

ScrapyEngine从Downloader中接收到Response,通过SpiderMiddlewares发送给Spider处理;

Spider处理Response并返回提取到的Item以及新的Request给ScrapyEngine;

ScrapyEngine将Spider返回的Item交给ItemPipeline,将Spider返回的Request交给Schedule进行从第二步开始的重复操作,直到调度器中没有待处理的Request,ScrapyEngine关闭。

图2-2药物网站爬虫原理流程图

2.5 机器学习算法

机器学习算法是一种常用的机器学习方法,用于分类和回归任务。它模拟人类决策过程的树形结构,通过一系列的问题和条件来对数据进行分类或预测。下面是机器学习算法的基本介绍:

树结构: 机器学习由节点(Node)和边(Edge)组成。节点分为内部节点(Internal Node)和叶节点(Leaf Node)。内部节点表示一个特征或属性,叶节点表示一个类别(对于分类问题)或者数值(对于回归问题)。

分裂节点: 机器学习学习的关键在于如何选择最优特征进行节点分裂。通常采用的方法是根据某种准则(如信息增益、基尼系数等)将数据集分成纯度更高的子集。

递归构建: 从根节点开始,递归地选择最优特征进行节点分裂,直到满足停止条件(如达到最大深度、节点包含的样本数小于阈值等)或者节点不可分。

预测: 当新样本进入机器学习时,根据特征值的比较,沿着树的路径向下遍历,最终到达叶节点,根据叶节点的类别或数值进行预测。

算法流程:

特征选择: 根据某种准则选择最优的特征作为当前节点的分裂条件。

节点分裂: 将数据集按照选定的特征进行分裂,生成子节点。

递归处理: 对每个子节点重复以上过程,直到满足停止条件。

建立树: 通过节点分裂构建完整的机器学习

预测: 根据输入样本的特征值,沿着树的路径进行预测。

机器学习算法在实际应用中被广泛使用,特别是在金融、医疗、工业等领域的数据挖掘和预测任务中取得了良好的效果。

2.6 本章小结

本章主要分析了系统开发过程中使用到的技术点和框架,通过研究这些技术的原理后,在本设计中加以应用,包括药物数据采集的爬虫技术,数据持久化存储技术,以及基于Flask框架的系统后台技术和机器学习预测算法,通过预研上述技术点并加以应用从而开发出基于机器学习的药物不良反应分析系统


3 药物不良反应预测分析系统实现

3.1 系统可行性分析

3.1.1可行性研究

通过对系统研究目标及内容的分析审察后,提出可行性方案,并对其进行论述。主要从技术可行性出发,再进一步分析经济可行性和操作可行性等方面。

3.1.2 经济可行性

开发系统所涉及到的资料,一般是在图书馆查阅,或是在网上进行查找收集。开发过程使用到的IDE一般也是开源的,因此,开发成本是几乎为零。但是开发出来的系统,还是具有高效率,低成本,较高质量的。所以,从经济可行性的角度,该系统符合标准。

3.1.3技术可行性

从技术可行性而言,由于本人一直是计算机相关专业,在大学期间也一直学习的就是计算机和Flask相关技术,如Flask,Python,HTML等,这次毕设更是对自己的专业知识的一次实际应用,使自己对知识的理解更加深厚,因此从技术可行性而言也是没有问题的。

3.1.4 运行可行性

由于本人在日常学习的过程中也会经常使用到本文设计中所设计的计算框架,这些框架的版本都是经过本人的经验和查阅资料后确定的,另外本文使用的是个人笔记本开发,不使用大量的服务器资源,因此运行可行性是满足的。

3.1.5 时间可行性

从时间上看,由于本人很早就确立了论文的题目,因此很早就开始了基础技术的研究,有了一定的基础理论支撑,然后开发程序的时间也是足够的,并且预留了一定的时间去修复整个系统的BUG,因此从时间上来说是完全可行的。

3.2 系统实现流程

药物不良反应预测与分析系统的实现流程可以分为以下几个步骤:

需求分析: 确定系统的功能需求和用户需求,包括数据采集、存储、分析、可视化、预警和用户管理等方面的需求,以及系统的性能要求和安全要求。

系统设计: 设计系统的架构和模块,包括数据采集模块、数据存储模块、数据分析模块、可视化模块、预警模块和用户管理模块等。确定系统的数据流和处理流程,以及模块之间的交互关系。

数据采集: 开发数据采集模块,从各个数据源获取药物不良反应相关数据,包括临床数据、患者报告、监管机构报告等。可以使用API接口、爬虫技术等方式进行数据采集,并进行数据清洗和预处理。

数据存储: 设计并建立数据存储系统,选择合适的数据库进行数据存储,包括关系型数据库。建立数据仓库,存储采集到的原始数据和处理后的数据,确保数据的安全性和可靠性。

数据分析: 开发数据分析模块,对采集到的数据进行统计分析和机器学习算法建模,识别药物不良反应的规律和潜在风险因素。可以使用统计软件和机器学习框架进行数据分析,并进行模型评估和优化。

可视化: 设计并开发数据可视化模块,将分析结果以图表、报表等形式呈现给用户,提供直观的数据可视化界面。可以使用数据可视化工具设计交互式的可视化界面,使用户能够快速理解数据分析结果。

预警系统: 建立预警机制,开发预警模块,设定预警规则和阈值,及时发现药物不良反应的异常情况并进行预警。可以设置预警通知方式,如邮件、短信、报警等,提醒相关人员采取相应措施。

用户管理: 开发用户管理模块,包括用户注册、登录、权限管理等功能。设计用户角色和权限体系,区分不同用户的操作权限,保障数据的安全性和隐私性。

系统集成和测试: 将各个模块进行集成,并进行系统整体测试,验证系统的功能完整性和稳定性。确保系统能够正常运行并满足用户需求。

部署和维护: 将系统部署到生产环境中,确保系统的安全性和稳定性。定期对系统进行维护和更新,优化系统性能,修复漏洞和bug,持续改进系统功能和用户体验。

以上是药物不良反应预测与分析系统的实现流程,具体实施时需要根据实际情况和需求进行调整和优化。

3.3 系统平台架构

在任何信息系统当中有价值的数据都是必不可少的重要部分如何通过手上的资源获取得到有价值的数据便是开发系统首先需要考虑的问题根据系统的功能设计数据获取和处理的流程以及其实现方法都已经基本上确定获取和处理流程。

3.4 药物数据爬虫设计

这个项目我们的主要目的是爬取药物网的药物数据信息,包括药物名称和药物描述和药物反应等具体详情信息,下面描述本文爬虫工程主要设计步骤。

(1)创建项目

打开一个终端输入:scrapy startproiect python_ drag _data,Scrapy框架将会在指定目录下生成整个工程框架。

(2)修改setting文件

本设计主要修改三项内容,第一个是不遵循机器人协议,第二个是下载间隙,由于下面的程序要下载多个页面,所以需要给一个间隙(不给也可以,只是很容易被侦测到),第三个是请求头,添加一个User-Agent。

(3)确认要提取的数据,item 项

item定义你要提取的内容(定义数据结构),比如我提取的内容为药物的所在城市和企业药物详情,于是需要在items类中新建对应的实体类,并需要设置相应的字段取出对应的数据。Field 方法实际上的做法是创建一个字典,给字典添加一个建,暂时不赋值,等待提取数据后再赋值。

  1. 开发爬虫程序,访问下载网页,使用Xpath语法提取内容

表3-1 爬虫文件核心代码

import requestsfrom bs4 import BeautifulSoup

def fetch_drug_information(drug_name):

    # 构造请求头部信息

    headers = {

        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}

    

    # 构造请求链接

    url = f'https://example.com/search?q={drug_name}'

    

    # 发送GET请求

    response = requests.get(url, headers=headers)

    

    # 检查响应状态码

    if response.status_code == 200:

        # 使用Beautiful Soup解析HTML

        soup = BeautifulSoup(response.text, 'html.parser')

        

        # 从HTML中提取药物信息

        drug_information = {}

        drug_information['Name'] = drug_name

        drug_information['Description'] = soup.find('div', class_='description').text.strip()

        # 根据实际情况提取更多信息

        

        return drug_information

    else:

        print('Failed to fetch drug information.')

        return None

# 示例:爬取药物信息并打印

drug_name = 'aspirin'

drug_info = fetch_drug_information(drug_name)if drug_info:

    print('Drug Information:')

    for key, value in drug_info.items():

        print(f'{key}: {value}')

3.5 药物不良反应预测程序设计

你需要将 adverse_drug_reactions_dataset.csv 替换为你的数据集文件路径,并根据实际情况进行数据预处理,比如处理缺失值、类别型数据编码等。然后使用 train_test_split 函数划分数据集,构建逻辑回归模型,并进行训练和预测。最后使用准确率等指标评估模型性能。

3-1 药物不良反应预测主要代码

import pandas as pdfrom sklearn.model_selection import train_test_splitfrom sklearn.tree import DecisionTreeRegressorfrom sklearn.metrics import mean_squared_error

# 读取数据

data = pd.read_csv('agricultural_production.csv')

# 数据预处理,包括特征选择、缺失值处理、数据转换等

# 划分特征和标签

X = data.drop(columns=['不良反应'])  # 特征

y = data['不良反应']  # 标签

# 划分训练集和测试集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建机器学习模型

model = DecisionTreeRegressor(random_state=42)

# 拟合模型

model.fit(X_train, y_train)

# 在测试集上进行预测

y_pred = model.predict(X_test)

# 计算模型性能

mse = mean_squared_error(y_test, y_pred)print("均方误差(MSE):", mse)

对于基于机器学习算法的药物不良反应预测模型,可以进行不同维度的分析,以了解模型的性能和特征的重要性。

特征重要性分析:通过查看训练好的机器学习模型中各个特征的重要性得分,可以了解到哪些特征对于药物预测的贡献最大。这有助于决定后续特征工程的方向,以及帮助决策药物管理措施。

模型性能评估:使用不同的评价指标(如均方误差、平均绝对误差、决定系数等)来评估模型在训练集和测试集上的性能。这可以帮助确定模型的泛化能力和预测准确度。

学习曲线分析:通过绘制模型的学习曲线,可以观察到随着训练样本数量的增加,模型性能的变化情况。这有助于判断模型是否存在过拟合或欠拟合问题,并指导进一步的模型调优。

参数调优分析:通过调整机器学习模型的参数(如树的深度、叶子节点的最小样本数等),观察模型性能的变化情况。这可以帮助找到最佳的参数组合,以达到最佳的模型性能。

可解释性分析:机器学习模型具有很好的可解释性,可以将生成的机器学习可视化,以直观地了解模型的决策过程。这有助于药物专家理解模型的预测逻辑,并根据需要进行调整和优化。

通过对这些不同维度的分析,可以全面地评估基于机器学习算法的药物不良反应预测模型的性能和特征重要性,从而为药物管理和决策提供更好的支持和指导。

3.6 本章小结

本章主要分析了基于Flask药物不良反应可视化及预测系统的设计与实现系统开发过程中使用到的技术和具体的实现步骤,这其中主要介绍了药物可不良反应视化及预测平台的搭建环境和开发步骤,包括程序中的一些数据库配置等

4 后台系统实现

本文设计的基于Flask药物数据可视化和药物预测信息分析系统的后台系统采用的是Flask框架实现的,前端使用的是Echarts展示,页面展示使用Echarts技术,在数据持久层使用的是MySQL数据库。本文将在第四章介绍本系统后台的搭建过程,技术选型,以及后台代码配置等,最后以具体页面的详情图描述了本系统的常用的基本功能。

4.1 开发环境与配置

4.1.1 开发环境

本系统设计基于 B/S 架构,其中服务器包括应用服务器和数据库服务器。 这种架构模式,使用户只需要在有网络的地方即可通过浏览器访问,而不需要再安装客户端软件,交互性更强。基于Flask药物数据可视化和药物预测信息分析平台使用Pycharm 集成开发工具。而系统运行配置时,选择本地来部署 Web 服务器来保障平台的正常运行本系统的主要开发环境以及开发工具如表 4-1 所示。

表4-1 系统开发环境和工具

项目

系统环境及版本

硬件环境

Windows 64 位操作系统

开发语言

Python

Web服务器

本地

数据库

MySql

开发工具

Pycharm

项目架构

Flask

4.1.2 框架配置介绍 

本系统使用集成开发工具 Pycharm进行开发, 本文主要介绍 Flask 框架

4.1.3 数据库的设计

整个系统的最重要的一部分就是对数据持久层的设计,因为整个系统的每个操作,包括注册登录,查询,展示其实都是对数据库的操作,因此如何设计一个健壮,扩展性强的数据库是非常必要的。

根据功能模块的划分结果可知,本系统的用户由于使用账号和密码进行登录,因此在本系统中需要分别进行数据记录。首先根据如下2个数据实体:用户、药物实体等数据库表。

4-1用户实体

图4-2药物实体

4.2 系统功能模块实现

4.2.1登录认证

当用户执行登陆操作时,后台会从前端传过来的参数中拿到用户名和密码,并查询数据库,通过findUserByName方法查询该用户的密码字段,再将查询的结果和前端传过来的密码参数字段进行比对,如果相同,则匹配成功用户直接跳转到登录成功后的欢迎界面;如果匹配失败则需前端继续输入正确的密码直到登录成功。用户登录具体流程如时序图如4-2所示。

图4-1登录认证流程图

药物数据可视化和药物预测信息Flask分析系统的用户登录界面如下图所4-2所示:

图4-2用户登录界面

登陆成功后,系统会成功跳转至首页,在首页中,位于上方的横栏是对本系统的基本信息的描述和欢迎登录效果,另外登录用户的用户名也会显示在首页中,可直接表明用户已成功登录。左侧则是本系统的导航菜单,可折叠展示,较为方便,右方则为欢迎页效果。药物数据可视化和药物预测信息分析系统的首页界面如下图所4-3所示:

图4-3药物不良反应系统首页界面

4.2.2药物数据管理功能

药物数据可视化和药物预测信息管理功能是对药物数据可视化和药物预测信息进行查询,删除等操作的功能集合,药物数据可视化和药物预测信息管理功能使用到了药物数据可视化和药物预测信息表t_drag, 药物数据可视化和药物预测信息表t_drag的主要数据字段,结构,类型及描述如下表4-2所示。

表4-2 药物数据信息表字段

字段名称

数据类型

是否允许为空

描述

id

int

不允许

自增主键,唯一ID

product

String

允许

药物名称

province

String

允许

成分

shop_name

String

允许

含量

Price

String

允许

价格

url

String

允许

药物详情URL

crawl_date

String

允许

日期

药物预测信息管理功能界面如下图所4-5所示:

图4-4药物不良反应预测界面

药物数据管理

功能流程功能图如图4-5所示:

图4-5 药物数据管理功能流程图

 通过“药物不良反应数据信息管理”按钮,进入药物数据可视化和药物预测信息界面,用户可以看到药物列表,通过此界面,用户可以对药物不良反应数据信息进行删除管理操作。

图4-6药物不良反应数据管理界面

4.2.3药物数据可视化看板功能

数据可视化模块就是对我们采集和计算的分析结果的展示。数据分析模块的数据进行一个精美而又直接的展示,我们采用大屏的方式进行展示,展示数据结构分明,背景具有科技感,把相对复杂的、抽象的数据通过可视的、交互的方式进行展示,从而形象直观地表达数据蕴含的信息和规律。

药物数据可视化看板界面如图4-7所示。

图4-7药物数据可视化看板界面

药物数据可视化和药物预测信息Flask分析可视化看板的功能较为丰富,由图可知,用户在登录本系统后,可以很清楚的读懂目前市场上的药物销售行情,如什么品牌的药物最高,那个不良反应区间的药物最高等等,这对用户而言是十分关注的,因此如何开发出美观的可视化界面也是一项不可或缺的工作。本文使用了图形,表格,地图等各种方式联动数据,十分直观。另外本文使用了Echarts中地图、线条等组件,将分析结果较为直观的展示给平台用户,使得用户能够简便的获取有效的信息。

4.3 本章小结

本章主要分析了基于Flask的药物分析系统的设计与实现系统开发过程中使用到的技术和具体的实现步骤,这其中主要介绍了药物不良反应分析平台的搭建环境和开发步骤,包括程序中的一些数据库配置等。前端页面采用的是Echarts实现。
第5章 系统的测试

5.1登录功能

5.1.1功能概要

该功能是用于用户登陆药物不良反应分析系统,当用户输入用户名和密码之后,经过数据校验,成功则进入主页面。

5.1.2详细描述

该后台登录功能,通过向后台登录接口发送请求,如图6.1是后台登录界面。登陆成功,则提示登陆成功,并跳转到药物不良反应分析主页界面,如图6.2所示。

图 6. 1 后台登录页面截图

5.2数据管理功能

5.2.1功能概要

药物不良反应分析系统的可视化查询功能是指用户可以通过图形化界面进行数据查询和筛选,获取符合特定条件的药物数据,并以可视化方式展示结果。下面是一个关于可视化查询功能的简要描述:

界面设计: 可视化查询功能应该具有用户友好的交互式界面,包括输入框、下拉框、复选框等控件,可以方便用户进行数据查询和筛选。同时,界面还应该有一定的美观性和易用性,以提高用户的使用体验。

查询条件: 可视化查询功能应该提供多种查询条件,如时间范围、评论内容、商品类型、情感极性、评分等,使用户可以根据自己的需求进行筛选。查询条件还可以根据实际情况进行扩展和调整。

数据展示: 查询结果应以可视化方式呈现,如柱状图、折线图、饼图等,可以直观地展示数据的分布和趋势。同时,也可以提供表格或列表形式的展示方式,以方便用户查看更详细的数据信息。

交互式操作: 可视化查询功能还应该支持用户的交互式操作。例如,用户可以通过鼠标单击或拖动、缩放等方式对图表进行操作,以获得更精确的数据信息。同时,也可以提供导出数据、分享链接等功能,便于用户进行数据分析和共享。

5.2.2详细描述

图 6.3数据管理界面

5.3本章小结

本章主要分析了药物不良反应分析可视化系统的测试过程,包括系统架构各模块测试,用户登录测试,数据管理等功能测试等。

6 总结与展望

6.1 系统开发遇到的问题

(1)本系统的开发有助于那些有梦想的药物分析人员,但是本人的能力和经验有限,药物可视化分析系统也受多种因素影响,所以本系统并不完美,日后在个人能力允许下会继续升级系统,将其更加的完善创造更大的作用。
  (2) 由于基于Flask药物数据可视化和药物预测信息分析平台是由人独立开发,因此在系统设计和业务逻辑方面更多地借鉴了目前市场上较为流行的框架和技术点包括Flask技术很多是不熟悉没接触过的在开发过程中不断学习新知识另外由于本人的时间和精力的原因系统开发过程中有很多地方可能并不能够完全尽如人意,还有许多需要补充的功能与模块

6.2  总结与展望

    为保证有足够的技术能力去开发本系统,首先本人对开发过程中所用到的工具和技术进行了认真地学习和研究,详细地钻研了Flask框架以及 Echarts,CSS,HTML等前端开发技术。
    然后从药物数据分析平台需求分析开始 ,到整体框架的设计以及各个详细功能的设计具体实现,最后药物数据可视化分析系统的基础架构和详细功能已经大致开发完毕,并将其部署在服务器当中运行,用户可以登录使用该系统进行药物数据可视化预测信息的筛选,同时查询分析结果。

参考文献

 [1] 谭小琴,张洪吉,李思佳等. 土地资源资产审计时空数据分析系统设计与实现 [J]. 测绘与空间地理信息, 2023, 46 (11): 42-44.

    [2] 程相博,车云力,张楠等. 遥测地面站自动化联试系统设计与实现[C]// 国防科技工业自动化测试创新中心,中国航空工业技术装备工程协会, 航空工业测控技术发展中心,中国航空学会测试技术分会. 2023年中国航空工业技术装备工程协会年会论文集. 中国人民解放军63810部队;, 2023: 4.

    [3] 刘方磊. 基于SSM框架的旅游大数据分析系统设计与实现 [J]. 中国新技术新产品, 2023, (21): 22-25.

    [4] 盛丹丹. 基于大数据分析的隐私信息保护系统设计与实现 [J]. 信息安全研究, 2023, 9 (09): 914-920.

    [5] 郎海晶. 客运设备维护信息化管理系统设计与实现 [J]. 减速顶与调速技术, 2023, (02): 25-28.

    [6] 吴颖,魏硕烁,白晶等. 自然资源统计分析与辅助决策系统设计与实现 [J]. 自然资源信息化, 2023, (03): 22-27.

    [7] 邓会杰,刘婷,王玉梅等. 舆情可视化分析系统设计与实现 [J]. 电脑与信息技术, 2023, 31 (02): 40-44.

    [8] 左佳佳,王予匀,张雪等. 泵站机组数据整编与分析系统的设计与实现 [J]. 水利科学与寒区工程, 2022, 5 (12): 150-152.

    [9] 孔亭. 智慧校园的数据接口处理系统设计与实现分析 [J]. 无线互联科技, 2022, 19 (24): 89-91.

    [10] 李大硕,张宏军,程恺等. 中药方剂数据分析系统设计与实现 [J]. 计算机时代, 2022, (12): 100-105.

    [11] 刘慧香,冯波. 智慧图书中的自助系统设计与实现 [J]. 电子技术, 2022, 51 (11): 100-101.

    [12] 宫瑞哲. 涤纶长丝丝锭质量数据分析系统设计与实现[D]. 机械科学研究总院, 2022.

    [13] 刘波,刘伟,唐波等. 智能中医药数据分析系统的设计与实现 [J]. 电脑知识与技术, 2022, 18 (07): 51-53.

    [14] 刘海,王明珠,刘世超等. 基于Spark的气象数据处理与分析系统的设计与实现 [J]. 河南科技, 2021, 40 (29): 26-28.


致  谢

在大学的校园里,我度过了难忘的学习生活。在这期间,我从周围的老师和同学身上学到了很多知识,并且建立了深厚的感情。

四年时间过的飞快,已经到了书写自己毕业论文的节点,回想过去的四年,充满了无数的欢乐,也学习了不少专业知识,这也更加丰富了我的大学生活。因此我要我的学院里的每一位教师,是你们教会了我的专业知识,让我具有了一技之长,同时还要感谢指导老师对我毕业设计的指导。

首先感谢我的导师,她严谨的治学态度深深地影响每位同学。我要感谢我的父母,他们总是默默的付出,在生活上给与我最大的帮助,在学习上也给我很多建议。在大学的校园里,我度过了难忘的学习生活。在这期间,我从周围的老师和同学身上学到了很多知识,并且建立了深厚的感情。

然后,感谢给子我帮助的朋友们,是你们让我的学习生涯更加温暖,让我能更加坚定的追求自己想要的生活。两年来,我们一起相互支持彼此的信念,一起学习新的知识,起解决遇到的各种问题, 不管我们选择的道路最终是否能够达到自己的理想,但愿我们能够友谊长存。

最后,我要感谢父母,是你们培养了我。

笔落至此,意味着我的大学四年即将落下帷幕。总以为来日方长,却不知韶光易逝,往昔已不可追。四年的大学生涯见证了自己的成长与改变,虽总是在不满自己的缓慢,最后,由衷的感谢各位评审老师在百忙之中抽出时间来参与我的论文评审和答辨。

  • 23
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值