




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Android平台心理咨询系统设计摘要随着社会的发展,计算机的优势和普及使得各种管理系统的开发成为必需。心理咨询系统主要是借助计算机,通过对心理咨询所需的信息管理,减少管理人员的繁杂工作,由于需要进行心理咨询的信息数据量大,人员手工管理需要消耗时间多、存储不方便,所以开发心理咨询系统既能方便人们,可以足不出户预约心理医生,对自己的心理问题进行咨询,满足对患者信息的管理,也方便患者和医生更多数据的查询及统计。本文设计实现的基于Android系统平台的心理咨询服务系统客户端是基于不同年龄阶段的人们的心理咨询服务中心业务需求,结合Android平台开发知识,基于软件工程开发流程知识为指导,旨在解决当前心理咨询服务效率低下,实现推广和普及心理咨询内容。在本咨询服务系统的设计与开发过程中,详细研究分析了系统的相关技术,业务流程内容,系统的使用接口划分;分析设计了系统的架构,系统网络拓扑,系统数据库设计以及部署方案细节。本文研究实现的心理咨询服务系统客户端,实现了心理咨询中心咨询业务创新,完成咨询服务向实时性,隐私化,信息化,移动化转变,最终实现提高心理咨询业务的处理效率,促进不同年龄阶段的人们积极关注心理健康问题,成为人们和心理咨询服务之间的重要沟通渠道。关键词目录255511.前言 163281.1课题背景及意义 1248841.2相关技术分析 1228571.2.1JSP 199541.2.2Java简介 2238681.2.3AndroidStudio技术 3232111.2.4IntelliJIDEA开发环境 3182021.2.5Tomcat服务器 4166491.2.6MySQL数据库 533891.2.7Navicat 5213891.2.8网易云信IM(即时通讯) 5135781.3本课题主要工作 650512.需求分析与可行性分析 7196802.1可行性分析 7178482.1.1技术可行性 7170332.1.2经济可行性 7229042.2用例图 7251412.2.1用例图 7159512.2.2注册系统用例详细描述 8272032.2.3登录系统用例详细描述 9317572.2.4申请预约用例详细描述 9170022.2.5回复预约用例详细描述 1015592.2.6线上交流用例详细描述 1063902.2.7治疗过程监督用例详细描述 1082122.2.8信用管理用例详细描述 11325742.3性能要求 11105293.系统概要设计 1398563.1系统功能图 1324903.2数据库设计原则 13104253.3心理咨询系统E-R图 1586183.4数据表 16259173.4.1管理员表 16160693.4.2用户表 16304903.4.3医生信息表 16108153.4.4患者信息表 17152473.4.5预约单信息表 1725173.4.6聊天记录表 18207544.系统详细设计 19315254.1用户注册管理功能模块 19316784.2用户登录管理功能模块 20171294.3医生信息管理功能模块 215594.4患者预约功能模块 21304554.5确认预约功能模块 22281634.6线上交流功能模块 222944.7信用评分功能模块 23137235.系统实现 2427055.1用户注册管理模块实现 24166075.2用户登录模块实现 2666125.3完善医生信息模块实现 2823105.4预约模块实现 30174535.5线上交流模块实现 32214255.6信用分数模块实现 3442666.系统测试 36194256.1功能测试 36260606.1.1注册 3639766.1.2登录 37238836.1.3完善医生信息 38160776.1.4患者预约 39304246.1.5医生接收预约 40169506.1.6线上交流 41107686.1.7信用分数 42264516.2安全测试 4364076.3可用性测试 43121986.4性能测试 44286806.5测试结果分析 44194137.结论 4619823参考文献 501.前言1.1课题背景及意义基于技术手段促使人们可以使用某一种方式,实现心理咨询的便捷化、隐私化、保密性的交互。随着4G/5G和Wi-Fi(wirelessfidelity,无限相容认证)的普及,当前日益成熟的Android智能系统技术也在不断地更新升级,使智能终端设备能够随时随地的接入互联网,获得丰富的网络服务。鉴于Android平台带来的一系列的便捷化优势与信息私密特性,本文提出设计与实现基于Android平台心理咨询系统,实现人们可以通过该平台进行心理咨询,成为人们生活中自主发现心理健康问题的一个高效率的平台;采用当前技术成熟的Android智能终端系统的相关技术,涉及到相关理论实践以及技术研究具有十分重要的运用价值与研究意义。本文设计实现的基于Android系统平台的心理咨询服务系统客户端是基于不同年龄阶段的人们的心理咨询服务中心业务需求,结合Android平台开发知识,基于软件工程开发流程知识为指导,旨在解决当前心理咨询服务效率低下,实现推广和普及心理咨询内容。在本咨询服务系统的设计与开发过程中,详细研究分析了系统的相关技术、业务流程内容和系统的使用接口划分;分析设计了系统的架构、系统网络拓扑、系统数据库设计以及部署方案细节。本文研究实现的心理咨询服务系统,实现了心理咨询中心咨询业务创新,完成咨询服务向实时性,隐私化,信息化,移动化转变,最终实现提高心理咨询业务的处理效率,促进不同年龄阶段的人们积极关注心理健康问题,成为人们和心理咨询服务之间的重要沟通渠道。1.2相关技术分析1.2.1JSPJSP(全称JavaServer
Pages)是由SunMicrosystems公司主导建立的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其编译器转换成更原始的Servlet代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的二进制机器码,也可以直接编译成二进制码。1.2.2Java简介Java作为计算机编程语言之一,已经被世界上各行各业的人们所接受。Sun公司创建了一个Green的项目,从而衍生出了Java技术,该技术期初只是为了给家用消费电子产品创建相关的分布式代码系统,这样我们可以把E-mail发给相关的家用消费电子产品,能够下达相关指令,能够得到我们想要的信息。在Sun公司首席执行官ScottMcNealy的指导下,Java被用于编写HotJava浏览器,意外之外Java技术出世。Java中最重要的部分是面向对象的程序设计,这与我们人类的思维有很大的相似之处,它作为一个整体,能够拥有更好的可塑性和维护性,因此能够极大地方便我们。面向对象主要有四大特性:封装、抽象、继承和多态。封装:类是封装中的一部分,类作为封装的体现,在现实生活中实体就是一个类,类中拥有属性和行为,就像人们拥有名字,性别,年龄等属性,同时也具有跑步,写字等行为,功能是由行为来实现的,同时属性也是行为的一部分,这就是封装特性的类;抽象:抽象是关于同类实体共同特性的演化,封装包括抽象类,因此关于在面向对象语言中的地位中抽象是由抽象类来体现的。好比一只鱼就是一个实体,抽象实体是不能够作为一个真正的实体,因为在描述一个对象中还不能够真正的去完完全全的描述其属性,因此抽象是不能够实例化的;继承:继承就好比我们家庭之中的父亲与儿子应该有的关系,父亲能够遗传给儿子一些特性,所以在面向对象语言中,子类就能够继承父类的一些特性,部分代码就可以直接引用,继承展现的是is-a关系,在本质上父类和子类还是一样的类。多态:多态是在父类对象之中引出不同子类在展现出不同的行为,多态展现出了很好的可塑性,可以不断重复使用代码。1.2.3AndroidStudio技术AndroidStudio是谷歌推出的一个Android集成开发工具,基于\t"/item/Android%20Studio/_blank"IntelliJIDEA.类似
\t"/item/Android%20Studio/_blank"Eclipse
\t"/item/Android%20Studio/_blank"ADT,AndroidStudio提供了集成的Android开发工具用于开发和调试。选取AndroidStudio原因(1)AndroidStudio是开放源代码的项目,能够在网上找到其相关的资料,Android是免费提供给世界各国程序员们使用的,并且获得的渠道多,容易操作。(2)稳定速度快:使用Eclipse的开发人员都会碰到突然假死、卡顿、内存占用高等一系列影响开发效率的老问题,AndroidStudio在这块性能上得到了明显的提升,并且AndroidStudio使用了单项目管理模式,在启动速度上比Eclipse快。(3)功能强大的UI编辑器:集合了Eclipse+ADT的优点,并且能更实时的展示界面布局效果。(4)智能:智能保存,智能补齐,在实际的编辑代码中熟练使用后,可极大提高代码编写效率。1.2.4IntelliJIDEA开发环境IDEA全称IntelliJIDEA,是Java编程语言开发的集成环境。IntelliJ在业界被公认为最好的Java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(\t"/item/IntelliJ%20IDEA/_blank"git、\t"/item/IntelliJ%20IDEA/_blank"svn等)、JUnit、CVS整合、代码分析、创新的GUI设计等方面的功能可以说是超常的。IDEA是\t"/item/IntelliJ%20IDEA/_blank"JetBrains公司的产品,这家公司总部位于\t"/item/IntelliJ%20IDEA/_blank"捷克共和国的首都\t"/item/IntelliJ%20IDEA/_blank"布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java,Kotlin等少数语言。选取AndroidStudio原因:(1)对JSP的完全支持不需要任何的\t"/item/IntelliJ%20IDEA/_blank"插件,完全支持JSP。(2)智能的选取在很多时候我们要选取某个方法,或某个循环或想一步一步从一个变量到全部类慢慢扩充着选取,IDEA就提供这种基于语法的选择,在默认设置中Ctrl+W,可以实现选取范围的不断扩充,这种方式在重构的时候尤其显得方便。(3)丰富的导航模式IDEA提供了丰富的导航查看模式,例如Ctrl+E显示最近打开过的文件,Ctrl+N显示你希望显示的类名查找框(该框同样有智能补充功能,当你输入字母后IDEA将显示所有候选类名)。在最基本的project视图中,你还可以选择多种的视图方式。(4)历史记录功能不用通过\t"/item/IntelliJ%20IDEA/_blank"版本管理服务器,单纯的IDEA就可以查看任何工程中文件的历史记录,在版本恢复时你可以很容易的将其恢复。1.2.5Tomcat服务器Apache是普通服务器,本身只支持html即普通\t"/item/apache%20tomcat/_blank"网页。不过可以通过\t"/item/apache%20tomcat/_blank"插件支持\t"/item/apache%20tomcat/_blank"php,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源。反之不然)。\t"/item/apache%20tomcat/_blank"Apache只支持静态网页,但像php,cgi,jsp等\t"/item/apache%20tomcat/_blank"动态网页就需要Tomcat来处理。Tomcat是由\t"/item/apache%20tomcat/_blank"Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照SunMicrosystems提供的技术规范,实现了对Servlet和JavaServerPage(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和\t"/item/apache%20tomcat/_blank"控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个\t"/item/apache%20tomcat/_blank"HTTP服务器,它也可以被视作一个单独的Web服务器。但是,不能将Tomcat和ApacheWeb服务器混淆,ApacheWebServer是一个用C语言实现的HTTPwebserver;这两个HTTPwebserver不是捆绑在一起的。ApacheTomcat包含了一个\t"/item/apache%20tomcat/_blank"配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。Apache,nginx,tomcat并称为网页服务三剑客,可见其应用度之广泛。1.2.6MySQL数据库MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于
Oracle
旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的
RDBMS
(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。1.2.7NavicatNavicat是一套快速、可靠并价格相当便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。1.2.8网易云信IM(即时通讯)网易云信是集合了网易21年IM以及音视频技术打造的PaaS服务产品,致力于为全球科技企业提供稳定、易用且功能全面的技术能力和场景化解决方案。具体来说,网易云信为全球科技企业提供融合通信与视频的核心能力与组件,包含IM即时通讯、5G消息平台、一键登录、信令、短信与号码隐私保护等通信服务;音视频通话、直播、点播、互动直播与互动白板等音视频服务,视频会议等组件服务。此外,网易云信支持公有云、专属云、私有云与混合云等4种部署方式,服务范围涵盖教育、医疗、文娱、社交等诸多行业。截止2020年9月已接入超过100万企业开发者。在IM即时通讯方面,网易云信主要为客户提供了一整套即时通讯基础能力,通过该平台服务就可以将即时通讯能力快速集成至企业自身应用中。针对不同场景,网易提供了一系列产品、技术解决方案,包括:客户端IM组件、客户端IM基础库、全平台SDK以及服务端API等。利用这些服务与方案,可以直接在自身的应用中搭建出即时通讯服务,满足普通APP用户、老师与学员、企业成员之间的即时通讯场景。同时即时通讯作为基础能力,完全可以根据后续企业内部需要,衍生出非常多的场景支持,打造为企业专属的IM即时通讯服务。1.3本课题主要工作本文首先对本系统的开发的必要技术进行简略的介绍,然后进一步详细介绍。在系统开发之中分析是不能够少的,为了方便实施,因此选着容易操作的AndroidStudio、JSP、MySQL技术作为主要技术。因为JSP和MySQL都是世界上最受欢迎的开发工具,所以无论在安全性、可用性、可靠性方面都能够得到大家相信。为实现心理咨询系统高效益、高效率的使用,应从实际工作流程出发,通过研究心理咨询的现状、存在的问题、了解人们的需求,从而设计一个完善的心理咨询系统。在心理学的研究领域,利用数据和科学的研究方法,进行收集、整理信息,在将具体的信息传到数据库中。分析这些数据中包含的意义,对心理问题的研究起到了重要作用。最后再使用ios或Android系统,逐渐将心理咨询使用起来,完整本系统的设计工作。
2.需求分析与可行性分析2.1可行性分析2.1.1技术可行性(1)硬件可行性分析系统的硬件要求方面没有什么太高大的要求,即使在普通的硬件配置上面也能够实现我们所需要的功能,只要系统能够正常工作,能有拥有比较高的工作效率。但是有些特别低配的硬件,因为极其低下的性能和低下的效率,所以可能导致网站运行奔溃。按照当前世界计算机的配置,在技术方面可以说没任何问题。因此,本系统的开发在硬件方面是可行的。(2)软件可行性分析当前Android技术发展逐渐成熟,本人在大学课程里学过《数据库系统原理及应用程序》、《软件工程》、《Android移动应用软件开发》等课程,所以本系统可采用Android为开发语言,以AndroidStudio和MySQL数据库为开发工具进行开发。2.1.2经济可行性AndroidStudio和MySQL都是免费的工具,随着Android开发技术逐渐趋于成熟,开发语言变得越来越完善,开发一款基于Android的系统更加简单快捷,成本也逐渐降低,各式主流框架更是大幅度节约了开发者的时间和金钱。有关于心理咨询方面的资料网上可以搜寻到。2.2用例图2.2.1用例图患者、医生即为普通用户,患者和医生需要填写自己的用户名和密码登录,然后找到对预约医生项目,接着患者选择合适的医生进行预约,医生接收预约消息,这样就可以进行线上的沟通。医务管理员作为管理人员,可以进行添加、修改、删除、查询用户的信息,同时还要能够查询医生对患者的治疗情况,为患者和医生进行信用评分。用户用例图如图2-1所示:图2-1用户用例图2.2.2注册系统用例详细描述用况名称:注册参与执行者:患者、医生前置条件:患者进入心理咨询系统后,通过账号密码成功注册后使患者可以登录该系统事件流:基本路径:当患者选择“注册”时,用况开始进入注册界面患者在注册界面填写患者名,验证码,手机号,设置密码输入两次密码等信息系统检查信息的完整性患者选择“获取动态码”,得到动态码,患者输入动态码患者选择“注册”,显示注册成功系统管理员可以查看已注册过的用户信息用况结束2.2.3登录系统用例详细描述用况名称:登录参与执行者:患者、医生、医务管理员前置条件:医生或患者或医务管理员进入心理咨询系统并成功登录账号事件流:基本路径:当患者或医生或医务管理员选择“登录”时,用况开始患者或医生或医务管理员输入自己的姓名和密码患者或医生或医务管理员选择“登录”,成功登录,并回到首页用况结束2.2.4申请预约用例详细描述用况名称:申请预约参与执行者:患者前置条件:患者注册并成功登录进心理咨询系统,选择申请预约事件流:基本路径:当患者选择申请预约时,用况开始任意次数和合理的次序重复如下事件流,直至出现提交预约事件流浏览医生信息显示预约的医生的信息及时间预约心理医生循环结束提交预约根据预约信息,创建预约单患者填写基本信息确认预约或退出2.2.5回复预约用例详细描述用况名称:确认预约参与执行者:医生前置条件:医生成功登录进入系统事件流:基本路径:当医生选择确认预约的患者时,用况开始按照预约的先后顺序显示申请按照顺序进行回复确认用况结束2.2.6线上交流用例详细描述用况名称:线上交流参与执行者:医生、患者前置条件:医生已经确认预约,患者按照时间登录进入心理咨询系统,选择线上交流事件流:基本路径:当患者选择线上交流时,用况开始患者与医生进行文字或语音交流用况结束2.2.7治疗过程监督用例详细描述用况名称:治疗过程监督参与执行者:管理员前置条件:管理员从后台进入心理咨询系统,选择治疗过程事件流:基本路径:当管理员选择治疗过程时,用况开始管理员对患者和医生的交流记录进行检查用况结束2.2.8信用管理用例详细描述用况名称:信用管理参与执行者:患者、医生、管理员前置条件:管理员从后台进入心理咨询系统,选择信用管理事件流:基本路径:当管理员选择信用管理时,用况开始管理员根据患者和医生确认预约后的咨询的情况进行信用度评价患者和医生可以查看自己的信用管理用况结束2.3性能要求关于系统架构设计方面,要体现出用户与整个系统模块的接口之间相互联系,相互交换信息,能够很清晰的表现出来,只有这样才能够在程序完成的后期实现程序的可塑性和安全保障,我们必须要保证整个系统有很好的可塑性,只有这样在以后系统才有更大的改革空间。1.整个系统的设计中,系统必须满足以下要求:(1)安全性因为储存的是患者基本信息和医生的相关数据,其中很多信息是患者的个人信息,不能泄露,因此我们要保证患者和医生信息的安全,因此在系统开发的时候就要考虑到数据的安全性,必须保证患者和医生的隐私。(2)容易操作因为本系统采用的是,Androidstudio、MySQL、Java技术,而这些系统在操作方面都是非常便利的,通俗易懂的。从而我们整个系统的开发也应该是简易操作,对我们很方便。(3)柔软性因为整个系统的对应业务有很多,所有保证要保证整个系统的柔软性。(4)可塑性因为随着心理健康咨询业务的不断变化,因此本系统必需要有可塑性来保证整个系统能够适应未来的发展。2.关于心理咨询系统的基本要求如下:(1)功能要求:患者通过系统可以查看自己的基本信息管理、医生信息管理等等。(2)性能:能够在不同系统以及不能平台环境下运行,同时功能不能有所缺失,要保证功能的完整以及可用。从而保障性能没有问题。(3)安全与保密要求:管理员必须输入自己的用户名和密码来登录整个系统,以此来保障整个程序的安全。(4)环境要求:能够在多种平台下运行,能够在ios、Android手机系统下使用。
3.系统概要设计管理员所能使用的功能主要有:患者信息管理、医生信息管理、信用分数管理、治疗过程监督功能。3.1系统功能图系统功能图,如图3-1所示。图3-1管理员系统功能图3.2数据库设计原则在概念设计中,通常用四种方法:自顶向下、自底向上、逐步扩张、混合策略。结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构在物理结构设计阶段首先分两步走:确定数据库的物理结构,在关系数据库中主要是指存取方法和存储结构。对物理结构的评价是时间和空间效率。选取正确的关系模式存取方法,常用的有:存取索引方法、聚簇存取、HASH存取方法等。
用户注册信息实体属性图如图3-2所示:图3-3用户注册信息属性图管理员信息实体属性图如图3-4所示:图3-4管理员信息实体属性图医生信息实体属性图如图3-5所示:图3-5医生信息实体属性图患者信息实体属性图如图3-6所示:图3-6医生信息实体属性图预约单信息实体属性图如图3-7所示:图3-7预约单信息实体属性图3.3心理咨询系统E-R图在系统概要的设计阶段E-R模型是比不可缺少的。它用实现,联系,属性这三者来展现事物之间的各种关联。而E-R图则是E-R模型最直接的展现方式,通过E-R图有助于我们对各个事物更直观的了解。心理咨询系统E-R图如图3-8所示:图3-8心理咨询系统E-R图
3.4数据表3.4.1管理员表在管理员表中有用户名、密码用于管理员的登录,如表3-1所示:表3-1管理员表序号列名数据类型长度主键外键允许空说明1用户名varchar20否管理员姓名2密码varchar20否管理员密码3.4.2用户表在用户表中有用户名(name)、用户密码(pwd)和用户手机号(phone)同时还有一个验证码用于注册,用户需要用户名和密码登录。如表3-2所示:表3-2用户表序号列名数据类型长度主键外键允许空说明1idint10是否编号2usernamevarchar255否用户姓名3userpwdvarchar20否用户密码4phoneint11否用户手机号3.4.3医生信息表医生信息表中有医生姓名(name)、工作年限(doctor_age)、擅长专业(doctor_major)、预约时间(time)、医生联系方式(doctor_phone)、医生信用评分(doctor_xinyong)。如表3-3所示:表3-3医生信息表序号列名数据类型长度主键外键允许空说明1idint10是否编号2doctor_namevarchar20否医生姓名3doctor_ageint5否工作年限4doctor_majorvarchar50否医生专业5timevarchar30否预约时间6doctor_phoneint11否医生联系方式7doctor_xinyongint5是医生信用评分3.4.4患者信息表在患者信息表中有患者姓名(huanzhe_name)、患者身份证号(huanzhe_id)、患者年龄(huanzhe_age)、患者联系方式(huanzhe_phone)、患者信用评分(huanzhe_xinyong)。如表3-4所示:表3-4患者信息表序号列名数据类型长度主键外键允许空说明1idint10是否编号2huanzhe_namevarchar20否患者姓名3huanzhe_idint18否患者身份证号4huanzhe_ageint5否患者年龄5huanzhe_phoneint11否患者联系方式6huanzhe_xinyongint5是患者信用评分3.4.5预约单信息表在预约单信息表中有患者姓名(huanzhe_name)、患者身份证号(huanzhe_id)、患者年龄(huanzhe_age)、患者联系方式(huanzhe_phone)、患者咨询(huanzhe_zixun)、医生姓名(doctor_name)、预约时间(time)、医生联系方式(doctor_phone)、医生回复(doctor_huifu)。如表3-5所示:表3-5预约单信息表序号列名数据类型长度主键外键允许空说明1huanzhe_namevarchar20否患者姓名2huanzhe_idint18否患者身份证号3huanzhe_ageint5否患者年龄4huanzhe_phoneint11否患者联系方式5huanzhe_zixunvarchar200是患者咨询6doctor_namevarchar20否医生姓名7timevarchar30否预约时间8doctor_phoneint11否医生联系方式9doctor_huifuvarchar200是医生回复
3.4.6聊天记录表在聊天记录表中有信息(messagee)和时间(message_time)。如表3-5所示:表3-6聊天记录表序号列名数据类型长度主键外键允许空说明1personvarchar50是信息发布人2messagevarchar255是信息3message_timevarchar255是时间
4.系统详细设计4.1用户注册管理功能模块用户注册模块流程图如图4-1所示,用户进入系统之后首先进行注册,需要输入用户名、手机号、动态验证码、两次密码,系统判断验证码是否正确,两次输入的密码是否一致,若都正确,则注册成功,反之,注册失败。图4-1用户注册管理模块流程图
4.2用户登录管理功能模块用户登录管理模块流程图如图4-2所示。登录时需要使用注册的用户名和密码进行登录,若用户名密码正确,则登陆成功;反之则登录失。图4-2用户登录管理模块流程图
4.3医生信息管理功能模块医生信息管理模块流程图如图4-3所示。医生信息管理模块有添加姓名、专业、工作年限、联系方式等操作。可以查看自己已经添加的信息:姓名、专业、工作年限、联系方式等信息。图4-3医生信息管理模块流程图4.4患者预约功能模块患者预约管理模块流程图如图4-4所示。患者进入系统之后可以看到医生的信息,根据自己的情况选择合适的医生进行预约,提交预约单时需要填写自己的信息及病情,医生收到预约之后可以在预约时间段内和患者进行线上交流。图4-4患者预约模块流程图4.5确认预约功能模块医生收到预约管理模块流程图如图4-5所示。医生进入系统之后可以看到已经提交预约的患者,点击对应患者可以进行回复确认。图4-5确认预约预约管理模块流程图4.6线上交流功能模块线上交流模块流程图如图4-6所示。医生确认患者预约之后,在对应的时间端内可以进行线上交流,可以相互发送语音、图片、表情,为她们的沟通提供便利。图4-6线上交流模块流程图
4.7信用评分功能模块信用评分模块流程图如图4-7所示。管理员进入后台图4-6信用评分模块流程图
5.系统实现5.1用户注册管理模块实现 注册管理模块是新用户在使用app之前要先进行注册操作,需要输入用户名、手机号、验证码、密码,注册成功之后可以用已注册的用户名和密码进行登录。用户注册模块实现界面截图如图5-1所示:图5-1用户注册模块界面图用户注册模块实现关键代码如下:@OnClick({R.id.tv_next_step,R.id.tv_sendCode})
publicvoidonViewClicked(Viewview){//View类的对象view作为参数传入onClick函数
switch(view.getId()){
caseR.id.tv_next_step://注册
Stringname=etName.getText().toString();//获取输入的用户名
=name;//赋值
Stringphone=etPhone.getText().toString();//获取输入的电话
this.phone=phone;//赋值
Stringpwd=etPwd.getText().toString();//获取输入的密码
this.pwd=pwd;//赋值
if(TextUtils.isEmpty(phone)&&TextUtils.isEmpty(pwd)){
showToast("注册失败");//若电话和密码都为空则提示注册失败
return;//返回值
}else{
if(user.equals("0")){
if(!CommonUtil.CODE.equals(etSmsCode.getText().toString())){
showToast("验证码错误");//若验证码和获取到的不一样则提示错误
return;//返回值
}elseif(!etPwd.getText().toString().equals(etPwdT.getText().toString())){//获取到的密码和填写的不匹配时
showToast("验证码错误");//输出提示错误
return;//返回值
}else{
CDBThreaddt=newCDBThread();
Threadthread=newThread(dt);
thread.start(); CDBThread1dt1=newCDBThread1();
Threadthread1=newThread(dt1);
thread1.start();
if(i==1){
CommonUtil.state=1;
showToast("注册成功");//提示成功
finish();//完成循环
}else{//否则提示失败
showToast("注册失败");
}
5.2用户登录模块实现用户登录模块是用户用注册过用户名和密码进行登录。用户登录模块实现界面截图如图5-2所示:图5-2用户登录模块实现界面图用户登录模块实现关键代码如下:classMyRadioButtonListenerimplementsRadioGroup.OnCheckedChangeListener{
@Override
publicvoidonCheckedChanged(RadioGroupgroup,intcheckedId){
//选中状态改变时被触发
switch(checkedId){//选择登录身份
caseR.id.rb_FeMale://当用户选择患者时
user="0";
break;
caseR.id.rb_Male://当用户选择医生时
user="1";
break;
}
}
}@OnClick({R.id.tv_register,R.id.tv_login})//登录和注册的点击事件
publicvoidonViewClicked(Viewview){//View类的对象view作为参数传入onClick函数
switch(view.getId()){
caseR.id.tv_register://注册
startActivity(newIntent(LoginActivity.this,RegisterActivity.class));
break;
caseR.id.tv_login://登录
StringinputName=etName.getText().toString();//获取用户名
userName=inputName;//赋值
StringinputPWD=etPwd.getText().toString();//获取密码
pwd=inputPWD;//赋值
if(user.equals("0")){
CDBThreaddt=newCDBThread();
Threadthread=newThread(dt);
thread.start();
if(i==1){
CommonUtil.state=1;
CommonUtil.NAME=inputName;
CommonUtil.PWD=inputPWD;
login("b571039838");
startActivity(newIntent(LoginActivity.this,MainActivity.class));
finish();
}
5.3完善医生信息模块实现医生信息包含了医生姓名,专业、工作年限、联系方式等等,可以一一添加,医生登录之后可以查看自己的信息,患者也在预约的时候也可以看到每个医生的信息。完善医生信息模块实现界面截图如图5-3所示:图5-3完善医生信息模块实现界面图完善医生信息模块实现关键代码如下:@Override
protectedvoidinit(){
CDBThread1dt=newCDBThread1();
Threadthread=newThread(dt);
thread.start();
}
@OnClick({R.id.et_age,R.id.tv_wanshan})//完善信息的点击事件
publicvoidonViewClicked(Viewview){//View类的对象view作为参数传入onClick函数
switch(view.getId()){
caseR.id.et_age:
break;
caseR.id.tv_wanshan://完善信息
CDBThreaddt=newCDBThread();
Threadthread=newThread(dt);
thread.start();
finish();//完成动作
break;//结束循环
}
}
classCDBThread1implementsRunnable{
@Override
publicvoidrun(){
CommonUtil.ID=DoctorDbUtils1.getInstance().selectId(CommonUtil.PWD,CommonUtil.NAME);//
}
}
classCDBThreadimplementsRunnable{
@Override
publicvoidrun(){//保存信息到数据库
Doctordoctor=newDoctor();//医生
doctor.setId(CommonUtil.ID);//编号
doctor.setName(CommonUtil.NAME);//姓名
doctor.setPwd(CommonUtil.PWD);//密码
doctor.setYuyue("");//预约次数
doctor.setTime(etTime.getText().toString());//预约时间
doctor.setHuanzhe("");//患者
doctor.setHuifu("");//回复
doctor.setZixun("");//患者咨询
doctor.setPath(CommonUtil.PATH);//上传头像的路径
doctor.setAge(etAge.getText().toString());//工作年限
doctor.setZhuanye(etZhuanye.getText().toString());//医生的专业
doctor.setPhone(CommonUtil.PHONE);//联系方式
DoctorDbUtils1.getInstance().change(doctor);
}
}
5.4预约模块实现预约模块是患者选择对应的医生之后进行预约,患者需要填写患者姓名,联系方式、病情简单描述等等信息,提交预约之后医生会收到预约信息,根据自己的时间进行回复确认,确认之后可以在对应时间段里进行交流。患者预约模块实现界面截图如图5-4-1和5-4-2所示:图5-4-1患者端预约模块实现界面图图5-4-2医生端预约模块实现界面图预约模块实现关键代码如下:@Override
protectedvoidinit(){
doctor=(Doctor)getIntent().getSerializableExtra("detail");
if(doctor!=null){
etTime.setText(doctor.getTime());//医生的预约事件
}
}
@OnClick({R.id.tv_zixun,R.id.tv_yuyue})//提交预约的点击事件
publicvoidonViewClicked(Viewview){//View类的对象view作为参数传入onClick函数
switch(view.getId()){
caseR.id.tv_zixun:
NimUIKit.startP2PSession(YuYueActivity.this,"b571039838",null);
break;//结束循环
caseR.id.tv_yuyue://预约的点击事件
Stringcishu=doctor.getCishu();//获取预约次数
if(TextUtils.isEmpty(cishu)){//如果不预约则次数不+1
cs=0;//开始次数为0
}else{
cs=Integer.parseInt(cishu)+1;//若预约成功则次数+1
}
doctor.setHuanzhe(etHuanzhe.getText().toString());//获取患者名字
doctor.setZixun(etZixun.getText().toString());//获取咨询
doctor.setTime(etTime.getText().toString());//获取预约时间
doctor.setYuyue("有预约");//获取预约提示,变成有预约
doctor.setCishu(cs+"");//获取预约次数
CDBThreaddt=newCDBThread();
Threadthread=newThread(dt);
thread.start();
showToast("预约成功");//提示预约成功
finish();//完成事件
break;//结束循环
}
}
5.5线上交流模块实现线上交流是医生和患者相互确认预约之后,在对应时间段里进行线上交流,可以发送语音、图片、表情。线上交流模块实现界面截图如图5-5所示:图5-5线上交流模块实现界面图线上交流模块实现关键代码如下:publicabstractclassCustomAttachmentimplementsMsgAttachment{
//自定义消息附件的类型,根据该字段区分不同的自定义消息
protectedinttype;
CustomAttachment(inttype){
this.type=type;
}
//解析附件内容。
publicvoidfromJson(JSONObjectdata){
if(data!=null){
parseData(data);
}
}
@Override
publicStringtoJson(booleanb){
returnCustomAttachParser.packData(type,packData());
}
publicintgetType(){
returntype;
}
//子类的解析和封装接口。
protectedabstractvoidparseData(JSONObjectdata);
protectedabstractJSONObjectpackData();
}publicclassMsgViewHolderDefCustomextendsMsgViewHolderText{
publicMsgViewHolderDefCustom(BaseMultiItemFetchLoadAdapteradapter){
super(adapter);
}
@Override
protectedStringgetDisplayText(){
DefaultCustomAttachmentattachment=(DefaultCustomAttachment)message.getAttachment();
return"type:"+attachment.getType()+",data:"+attachment.getContent();
}
}
5.6信用分数模块实现信用分数是管理员通过查看患者和医生的预约情况,进行评估的分数,患者和医生可以查看自己的信用分数。线上交流模块实现界面截图如图5-6所示:图5-6信用分数模块实现界面图信用分数模块实现关键代码如下:@Override
protectedvoidinit(){
CDBThreaddt=newCDBThread();
Threadthread=newThread(dt);
thread.start();
CDBThread1dt1=newCDBThread1();
Threadthread1=newThread(dt1);
thread1.start();
if(CommonUtil.state==1){//医生评分
tvPf.setText(a1);
}else{//患者评分
tvPf.setText(a2);
}
}
classCDBThreadimplementsRunnable{
@Override
publicvoidrun(){
a1=DoctorDbUtils1.getInstance().loadDocScore(CommonUtil.NAME);
}
}
classCDBThread1implementsRunnable{
@Override
publicvoidrun(){
a2=DoctorDbUtils1.getInstance().loadScore(CommonUtil.NAME);
}
}
6.系统测试测试是软件不可缺少的一部分,它关系着整个程序的成败,需要去查看程序的质量、性能、可靠性等能不能够达到相关要求。经过严谨、规范、完善测试过程能够很大程度上帮助我们去提升质量、可信度、可靠性,降低系统的出错率,能够降低程序的出错率,减少自身损失。一般我们系统测试包括:功能测试,安全测试,可用性测试,性能测试、兼容性测试等方面。6.1功能测试6.1.1注册注册模块功能测试如下表6-1所示:表6-1注册模块测试表编号测试用例描述操作过程及输入数据预期输出(结果)测试结果1患者注册点击【注册】按钮,不输入任何数据,点击【注册】按钮注册失败通过2患者注册点击【注册】按钮,输入用户名sxk、手机正确验证码0701、相同两次密码123456,点击【注册】按钮注册成功通过3患者注册点击【注册】按钮,输入用户名sxk、手机正确验证码0701、不同两次密码123456&111111,点击【注册】按钮注册失败通过4患者注册点击【注册】按钮,输入用户名sxk、手机错误验证码0701、相同两次密码123456,点击【注册】按钮注册失败通过5患者注册点击【注册】按钮,输入用户名sxk、手机错误验证码0701、不同两次密码123456&111111,点击【注册】按钮注册失败通过6医生注册点击【注册】按钮,不输入任何数据,点击【注册】按钮注册失败通过7医生注册点击【注册】按钮,输入用户名lyj、手机正确验证码0628、相同两次密码123456,点击【注册】按钮注册成功通过8医生注册点击【注册】按钮,输入用户名lyj、手机正确验证码0628、不同两次密码123456&111111,点击【注册】按钮注册失败通过9医生注册点击【注册】按钮,输入用户名lyj、手机错误验证码0628、相同两次密码123456,点击【注册】按钮注册失败通过10医生注册点击【注册】按钮,输入用户名lyj、手机错误验证码0628、不同两次密码123456&111111,点击【注册】按钮注册失败通过6.1.2登录登录模块功能测试如下表6-2所示:表6-2登录模块测试表编号测试用例描述操作过程及输入数据预期输出(结果)测试结果1患者登录患者进入app,不输入任何数据,点击【登录】按钮登录失败通过2患者登录患者进入app,输入已注册成功的用户名sxk、正确密码123456,点击【登录】按钮登录成功通过3患者登录患者进入app,输入未注册成功的用户名sxk、正确密码123456,点击【登录】按钮登录失败通过4患者登录患者进入app,输入已注册成功的用户名sxk、错误密码111111,点击【登录】按钮登录失败通过5患者登录患者进入app,输入未注册成功的用户名sxk、错误密码111111,点击【登录】按钮登录失败通过6医生登录医生进入app,不输入任何数据,点击【登录】按钮登录失败通过7医生登录医生进入app,输入已注册成功的用户名lyj、正确密码123456,点击【登录】按钮登录成功通过8医生登录医生进入app,输入未注册成功的用户名lyj、正确密码123456,点击【登录】按钮登录失败通过9医生登录医生进入app,输入已注册成功的用户名lyj、错误密码111111,点击【登录】按钮登录失败通过10医生登录医生进入app,输入未注册成功的用户名lyj、错误密码111111,点击【登录】按钮登录失败通过6.1.3完善医生信息完善医生信息模块功能测试如下表6-3所示:表6-3完善医生信息模块测试表编号测试用例描述操作过程及输入数据预期输出(结果)测试结果1医生填写信息医生登录app后,点击【完善信息】,部输入任何基本信息,点击【完善】按钮没有信息通过2医生填写信息医生登录app后,点击【完善信息】,输入基本信息,点击【完善】按钮已有信息通过3医生填写信息医生登录app后,点击【完善信息】,输入基本信息,点击【完善】按钮已有信息通过4医生填写信息医生登录app后,点击【完善信息】,输入基本信息,点击【完善】按钮已有信息通过5医生填写信息医生登录app后,点击【完善信息】,输入基本信息,点击【完善】按钮已有信息通过6管理员添加信息管理员登录系统后,点击【医生信息】,输入医生信息后,点击【保存】按钮添加成功通过7管理员添加信息管理员登录系统后,点击【医生信息】,输入医生信息后,点击【保存】按钮添加成功通过8管理员删除信息管理员登录系统后,点击【医生信息】,选择要删除的医生,点击【删除】按钮删除成功通过9管理员修改信息管理员登录系统后,点击【医生信息】,选择要修改的医生,重新输入信息后,点击【修改】按钮修改成功通过10管理员查询信息管理员登录系统后,点击【医生信息】,点击【查询】按钮查询成功通过6.1.4患者预约患者预约模块功能测试如下表6-4所示:表6-4患者预约模块测试表编号测试用例描述操作过程及输入数据预期输出(结果)测试结果1患者预约医生患者进入app后点击【预约】按钮,选择合适的医生,填写基本信息,提交预约提交成功通过2患者预约医生患者进入app后点击【预约】按钮,选择合适的医生,填写基本信息,提交预约提交成功通过3患者预约医生患者进入app后点击【预约】按钮,选择合适的医生,填写基本信息,提交预约提交成功通过4患者预约医生患者进入app后点击【预约】按钮,选择合适的医生,填写基本信息,提交预约提交成功通过5患者预约医生患者进入app后点击【预约】按钮,选择合适的医生,填写基本信息,提交预约提交成功通过6患者预约医生患者进入app后点击【预约】按钮,选择合适的医生,填写基本信息,提交预约提交成功通过7患者预约医生患者进入app后点击【预约】按钮,选择合适的医生,填写基本信息,提交预约提交成功通过8患者预约医生患者进入app后点击【预约】按钮,选择合适的医生,填写基本信息,提交预约提交成功通过9患者预约医生患者进入app后点击【预约】按钮,选择合适的医生,填写基本信息,提交预约提交成功通过10患者预约医生患者进入app后点击【预约】按钮,选择合适的医生,填写基本信息,提交预约提交成功通过6.1.5医生接收预约医生接收预约模块功能测试如下表6-5所示:表6-5医生接收预约模块测试表编号测试用例描述操作过程及输入数据预期输出(结果)测试结果1医生接收预约医生进入app后,按预约先后顺序显示已提交的预约,依次进行回复确认收到预约通过2医生接收预约医生进入app后,按预约先后顺序显示已提交的预约,依次进行回复确认收到预约通过3医生接收预约医生进入app后,按预约先后顺序显示已提交的预约,依次进行回复确认收到预约通过4医生接收预约医生进入app后,按预约先后顺序显示已提交的预约,依次进行回复确认收到预约通过5医生接收预约医生进入app后,按预约先后顺序显示已提交的预约,依次进行回复确认收到预约通过6医生接收预约医生进入app后,按预约先后顺序显示已提交的预约,依次进行回复确认收到预约通过7医生接收预约医生进入app后,按预约先后顺序显示已提交的预约,依次进行回复确认收到预约通过8医生接收预约医生进入app后,按预约先后顺序显示已提交的预约,依次进行回复确认收到预约通过9医生接收预约医生进入app后,按预约先后顺序显示已提交的预约,依次进行回复确认收到预约通过10医生接收预约医生进入app后,按预约先后顺序显示已提交的预约,依次进行回复确认收到预约通过6.1.6线上交流线上交流模块功能测试如下表6-6所示:表6-6线上交流模块测试表编号测试用例描述操作过程及输入数据预期输出(结果)测试结果1患者交流患者按照约定时间进入app,和医生进行更详细的交流,患者发出文字或语音进行交流通过2患者交流患者按照约定时间进入app,和医生进行更详细的交流,患者发出文字或语音进行交流通过3患者交流患者按照约定时间进入app,和医生进行更详细的交流,患者发出文字或语音进行交流通过4患者交流患者按照约定时间进入app,和医生进行更详细的交流,患者发出文字或语音进行交流通过5患者交流患者按照约定时间进入app,和医生进行更详细的交流,患者发出文字或语音进行交流通过6医生交流医生按照约定时间进入app,和患者进行更详细的交流,医生收到信息并进行回复进行交流通过7医生交流医生按照约定时间进入app,和患者进行更详细的交流,医生收到信息并进行回复进行交流通过8医生交流医生按照约定时间进入app,和患者进行更详细的交流,医生收到信息并进行回复进行交流通过9医生交流医生按照约定时间进入app,和患者进行更详细的交流,医
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物流网络可靠性分析-洞察及研究
- 城市扩张对留鸟栖息地选择的影响-洞察及研究
- 纳米技术在癌症治疗中的应用-洞察及研究
- 国内外政策影响评估-洞察及研究
- 生育力保护与临床应用-洞察及研究
- 快递企业客户服务管理方案
- 医院感染控制标准操作流程方案
- 青年教师职业成长档案管理方案
- 市场营销专业实习职业发展规划
- 高校教师教学考核办法与实施
- 内蒙古铜矿资源报告
- MSA-测量系统分析模板
- 植筋锚固深度计算表格
- 切肉机安全操作规程
- 110KV、220KV线路迁改工程施工组织设计.11588
- 钢箱梁支架搭设检查验收表
- 旅游文体翻译课件
- 植物病理学课件
- 广西基本医疗保险门诊特殊慢性病申报表
- 幼儿园小班语言活动教案《我会看书》
- DB62∕T 3171-2019 双向螺旋挤土灌注桩技术规程
评论
0/150
提交评论