基于Android及医院就诊预约管理系统及设计与实现.doc_第1页
基于Android及医院就诊预约管理系统及设计与实现.doc_第2页
基于Android及医院就诊预约管理系统及设计与实现.doc_第3页
基于Android及医院就诊预约管理系统及设计与实现.doc_第4页
基于Android及医院就诊预约管理系统及设计与实现.doc_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

苏州科技学院本科生毕业设计(论文) 苏州科技学院苏州科技学院 毕业设计毕业设计( (论文论文) ) 题题 目目 基于基于 AndroidAndroid 的医院就诊预约的医院就诊预约 管理系统的设计与实现管理系统的设计与实现 性性 质质: : 毕业设计毕业设计 毕业论文毕业论文 专专 业业: : 计算机科学与技术计算机科学与技术 年年 级级: : 20112011 级级 学学 号号: : 1120013511111200135111 姓姓 名名: : 李李 辉辉 指导教师指导教师 陶陶 滔滔 二二 O O 一五年一五年 苏州科技学院本科生毕业设计(论文) 基于基于 Android 的医院就诊预约管理系统的设计和实现的医院就诊预约管理系统的设计和实现 摘摘 要要 医院看病难的问题是当下热议的话题之一。预约挂号是患者寻诊问药的第一阶段, 如果能够提高预约挂号的效率,不仅能提高医院工作效率,同时可以减少患者的候诊 时间。预约挂号系统是基于 Android 操作系统的手机进行设计和研究的,实现在手机 上完成医院预约挂号功能。 系统基于 C/S 体系设计结构,客户端使用 Android SDK 开发工具,根据预约挂号 业务流程,提供用户注册登陆、预约挂号、语音提示等功能,服务器端支持管理员、 医生登录管理功能。服务器和客户端间的通信采用 HTTP 协议和 JSON 格式进行的数 据传输。系统利用 Android API 提供的各种组件模仿 Windows8 操作系统的扁平化风格 进行界面设计,预约就诊时间精确到分钟,挂号成功语音提示,能够很好地满足用户 体验,通过技术手段解决患者看病难的问题。 关键词关键词 预约挂号;Android SDK;扁平化;JSON 格式 苏州科技学院本科生毕业设计(论文) Based on the Androids hospital management system design and implementation of the booking Abstract The problem of hospital medical difficulty is one of the hot topics.Appointment of patients seeking the first stage of diagnosis and asks the pharmacist, if we can improve the efficiency of appointment register, not only can improve the work efficiency of the hospital, at the same time, can reduce the waiting time of patients. The reservation registration system is based on the Android operating system for mobile phone design and research, realize the hospital booking registration functions on the phone. System based on C/S system structure design, the client uses the Android SDK tools, according to appointment registration business processes, providing registered users landing, registration, the voice prompt, etc., the server support administrators, doctors log management function. The communication between the server and the client is transmitted by HTTP protocol and JSON format System use the Android API to provide the various components of the imitation Windows 8 flat style interface design, schedule an appointment time, accurate to the minute, successfully registered the voice prompt, can well meet the user experience, through technical means solving the patient to see a doctor difficult question. Keywords Android SDK; Delayering; Appointment registration; JSON format 苏州科技学院本科生毕业设计(论文) 目 录 第 1 章 绪论1 1.1 研究背景和意义.1 1.2 国内外研究概况.2 第 2 章 需求分析与总体设计4 2.1 系统业务流程.4 2.2 系统功能需求分析.5 2.2.1 Android 客户端.5 2.2.2 web 医生端 .6 2.2.3 web 管理员端 .6 2.3 系统结构设计.6 2.3.1 系统体系架构6 2.3.2 系统采用的设计模式6 2.3.3 系统的技术方案7 2.4 系统功能模块划分.9 2.4.1 客户端功能模块9 2.4.2 服务器端功能模块9 2.5 功能模块设计.10 2.5.1 注册登录模块10 2.5.2 用户 UI 模块10 2.5.3 数据传输模块10 2.5.4 数据处理模块11 2.5.5 数据存储模块11 第 3 章 数据库设计12 3.1 数据库类型.12 3.2 数据表设计.13 3.2.2 医生表13 3.2.3 排诊表14 3.2.4 挂号表14 3.2.5 收藏表15 3.2.6 数据库整体 E-R 图15 第 4 章 系统功能实现16 4.1 客户端.16 4.1.1 Activity 管理机制.16 4.1.2 HttpPost 网络访问实现17 4.1.3 注册功能实现18 4.1.4 登陆功能实现20 4.1.5 预约挂号功能实现23 4.1.6 我的医生功能实现30 苏州科技学院本科生毕业设计(论文) 4.1.7 最近预约功能实现32 4.1.8 个人中心功能实现33 4.1.9 语音提示功能实现36 4.2 服务器端.37 4.2.1 管理员登陆37 4.2.2 医生登陆38 第 5 章 系统测试39 5.1 数据库加密测试.39 5.2 功能测试.40 5.3 性能测试.46 结 论47 致 谢48 参 考 文 献49 附录 X 译文51 活动51 附录 Y 外文原文66 Activities.66 苏州科技学院本科生毕业设计(论文) 第第 1 1 章章 绪论绪论 1.11.1 研究背景和意义研究背景和意义 近几年来,随着科技发展的日新月异,智能手机的功能也在不断的完善,比如大 家除了使用手机打电话、发短信、浏览网页、听音乐等基本功能,还可以利用手机转 账,炒股,订餐以及智能家居等强大的功能,如果说电脑的发展带来了第三次科技革 命,那么智能手机将必定带来第四次科技革命。 手机预约挂号就是这次科技革命的成果。虽然科技在不断进步,但是面对中国近 14 亿的人口情况下也无济于事,医院的就诊挂号一直是个老生常谈的问题,包括怎样 做到以病人为中心,将挂号、就诊、交费、取药的步骤统一管理,缓解病人挂号排长 队、等待时间长、缴费难等问题。使用手机预约挂号,患者不需要亲自前往医院,也 就避免看病的”三长一短”问题,能够轻松的查看医生个人信息、排班信息,根据个 人情况选择就诊时间和医生,完成预约挂号的服务,享受科技带来的便捷。 目前网络上可供下载的医院挂号 APP 不在少数,比如挂号管家、挂号助手、挂号 找我等等。但是很多 APP 要么是收费,要么操作起来很难上手,降低用户体验,还有 的只是简单实现了挂号功能,没有给出医生具体的排班情况,仍然需要患者现场确认 时间,可以说真正适合用户使用的一款软件并不是很多。 通过上述对问题的研究以及用户的真实需求,本次基于 Android 的预约挂号系统 设计和实现具体重要意义,大致包括以下几点: 一、减少患者挂号排队时间。 手机进行预约挂号,患者可以享受预约优先服务,即优先挂号、优先检查,使得 患者看病等待时间大大的减少。 二、挂号方便、准确、安全。 患者通过手机查看医生排班时间,依据自己的实际情况选择合适的时间就诊,可 以选择现场支付或者在线支付,现场支付需要凭预约号至指定窗口领号,而在线支付 患者只需凭预约号直接到医院的相关科室就诊。如果在规定时间没有前来就诊,挂号 费会自动返回到用户账户,安全可靠。 三、医院信息透明化。 苏州科技学院本科生毕业设计(论文) 医院信息通过一个平台对外共享,患者和有关部门能够监督医院工作动态。医院 将医生的预约挂号信息第一时间上传至网络,所有的患者可以及时浏览医生排班信息, 保证了预约挂号的公平、公正性,有效的改善病人对医院的信任关系。 四、提高医院的服务品质。 救死扶伤是医生必须具备的本质,医院应当更好的发挥为人们服务的态度,包括 降低患者的等待时间,医疗资源的合理分配,医院能够合理、有序的运行,成为广大 患者值得信赖的医疗单位。 五、增加医院的社会竞争力。 手机预约挂号工作的大力推广,不但可以减轻医院窗口挂号的人口流量,患者可 以第一时间得到医生的就诊,遏制病情拖延带来的危险,提升了医院的服务质量,同 时患者有需要会及时前来复诊,保障医院病人来源的保持和增长,这对于医院的改革 和发展是至关重要的因素之一。 六、平台开放性。 在手机市场的激烈竞争中,Android 操作系统以强大的优势独树一帜。Android 操作 系统是基于 Linux内核开发,开放源代码,开发人员可以定制系统。在平板电脑、智能 手机等领域占有很大的地位,因此吸引了大量的移动终端厂商前赴后继的加入进来。 本次毕业设计的医院就诊预约挂号系统就是基于 Android 操作系统进行设计和实现的, 面向 Android 手机用户群。 1.21.2 国内外研究概况国内外研究概况 自从上世纪 60 年代初,医院信息管理系统(HMIS)在很多发达国家就得到了大 力的发展和进一步的研究,70-80 年代美国的 HMIS 有了较大的进步,尤其是在解决医 院 预约挂号的问题上取得了累累硕果。在很多欧美国家,通常患者看病都需要先进行预约 挂号,除非急诊,很少有人直接到医院找医生,没有预约报告单医生无法进行接诊。患 者看病具体步骤如下: 1)除急诊以外,先由社区家庭医生为患者诊疗,一旦认为有必要,会建议患者转 诊到专科医疗中心或专科医院治疗。 2)患者同意转诊,家庭医生联系专科医生,为患者开转诊单。 3)患者联系待转诊医院,电话预约就诊时间。 苏州科技学院本科生毕业设计(论文) 4)在预约的时间内凭转诊单及时前往医院就诊。 各级医生的工作分工明确,有条不紊的进行。医疗机构间建立的有效转诊制度,为 医疗质量提供了保障。和发达国家相比,我们国内的预约挂号在近几年发展也很迅速, 手机预约挂号服务在很多医院也进行了实施。在开展预约挂号服务的大部分医院,存在 数据不准确、 推广力度低等问题, 患者实际使用预约挂号软件的比例少, 医院看病的 “三 长一短”现状仍然没有的得到改善,对于用户失约和黄牛倒号卖号的现象,没有出台有 效的防范措施,相比国外的医疗水平仍然有很大的差距。 国内医院预约挂号方式多种多样,主要分为以下几种: 一、窗口预约 病人需要花费很多时间前往医院,通过和工作人员交流,填写预约信息,但是由 于工作人员不能方便的了解患者的病史以及确定上次就诊的医生,也就不能保证患者 正常预约到同一位医生进行诊疗。 二、电话预约 电话预约不需要患者到医院窗口挂号以及人工的方式填写预约的相关资料。避免 被安排到不同医生的状况,但是对于很多初次使用该方式的患者而言,由于不熟悉语 音系统,将需要花费许多时间听系统将所有的就诊选项的代号播报结束才能做选择, 并且一旦输入错误,需要重新输入预约信息,耽误及时就诊时机。 三、网络预约 网络预约挂号是由医院相关部门建立的网站,通过互联网预约挂号的一种方式。 网络预约相比现场预约和电话预约,很好的避免患者拥堵现象。在年轻人中广泛使用, 由于很多老年人没有接触过计算机,也就很少采用这种方式。 四、自助挂号终端预约 患者通过在医院里的自动挂号终端进行预约,通常终端上有操作流程和方法,方 便患者完成挂号,但是需要患者到医院挂号终端排队使用。 五、公共服务平台预约 一些大型医院和通信运营商合作,提供的公共预约挂号服务平台,比如电信的 114,移动的 12580。用户通过拨打服务电话预约,但是由于这类平台同时也提供了很 多其他的功能,所以用户经常会出现抢线,断线等状况。 苏州科技学院本科生毕业设计(论文) 第第 2 2 章章 需求分析与总体设计需求分析与总体设计 2.12.1 系统业务流程系统业务流程 经过对网络上现有的大量预约挂号平台的研究和医院实地考察,使用预约挂号客 户端到医院看病的总体流程一般需要经过如下几个步骤: 1)用户注册、登陆系统。 2)选择就诊的科室、医生、预约时间。 3)选择支付方式,提交订单。 4)系统给用户返回确认信息及预约码 5)用户选择窗口支付,提供预约码到医院指定窗口缴费并领取挂号单,凭挂号单 到门诊科室医生就诊;如果是在线支付,可直接凭预约码到门诊科室医生就诊。 6)根据专家医生开出的处方到收费窗口缴纳费用。 7)凭收据到药房取药。 8)离院。如果有需要可至医院进行复诊。 医院预约挂号流程具体详情如下图所示: 图 2-1 手机预约挂号流程图 苏州科技学院本科生毕业设计(论文) 2.22.2 系统功能需求分析系统功能需求分析 截止 2014 年年底,根据国际电信联盟公布的 ICT 报告数据显示,全球已经有超过 30 亿人使用互联网,而在这近 30 亿的人口中接近 2/3 的互联网用户来自发展中国家。 中国作为一个人口超过 13 亿的发展中国家,对互联网的依赖越来越大。全球信息化风 暴给信息技术带来了翻天覆地的革新,这也要求社会各行各业的信息化建设需要创新 和完善以满足时代的需求。医疗行业同样面临着这样的难题,包括怎样建设满足客观 需求的医疗信息化系统、病人及时就医、保护医院投资、以及方便医院往后的扩张等 等问题。针对我国现有的医疗资源紧缺、分配不合理、工作效率低从而导致病人看病 难,就诊不及时的情况,医疗系统的信息化推广建设势在必行。大力推广医院预约挂 号服务不但可以减少医院的窗口服务压力,而且可以提前通知医生安排就诊,从而很 好的提高医院的服务质量,保障了患者及时就诊的权益,也避免了医院看病”三长一 短”问题。 本次医院预约挂号系统是通过将病人预约的环节转移到手机上操作,从而实现患 者可以不出家门和排长队,能够随时随地轻松挂号。通过上节对预约挂号系统业务流 程的分析,进行系统的需求设计。系统应具备如下功能。 .1 AndroidAndroid 客户端客户端 1)用户注册、登陆 用户填写注册所需相关资料,凭账户(即身份证号)和密码登陆系统。 2)个人资料修改 用户登陆系统后可以修改除身份证号码、姓名、性别以外的资料。 3)科室、医生及排诊信息查询 用户登陆系统后可以浏览科室、医生以及该医生的排诊详情。 4)订单提交 用户登陆系统,根据自己病情选择科室、医生,选择合适的时间就诊。用户提交 订单可以选择在线支付或者窗口支付,一旦订单提交成功系统会返回预约码,凭预约 码到医院就诊。 5)预约挂号记录查询及取消 用户提交订单成功后可以浏览挂号记录,如果有特殊问题可以取消挂号。如果用 户选择的是在线支付,系统应当在限定时间内将诊金返回到用户账户中。 苏州科技学院本科生毕业设计(论文) 6)医生收藏 用户可以收藏自己喜欢的医生,可以方便浏览该医生的排诊信息,能够及时挂号 和复诊。 .2 webweb 医生端医生端 1)医生登陆 医生输入员工编号以及密码登陆后台。 2)浏览挂号详情 医生登陆系统可以查看哪些患者选择了自己的排诊记录,根据具体时间提前安排 出诊。 .3 webweb 管理员端管理员端 1)管理员登陆 系统管理员输入账号以及密码登陆后台。 2)管理医生 管理员登陆系统可以查看所有医生、更新医生信息、删除以及添加新医生。 3)管理用户 管理员可以浏览用户注册填写的个人信息。 4)管理医生排诊 管理员可以浏览所有医生的排诊信息、添加、删除以及更新排诊记录。 5)管理患者挂号记录 管理员可以查看用户所有的订单记录,包括用户、医生信息,以及预约时间等信 息。 2.32.3 系统结构设计系统结构设计 .1 系统体系架构系统体系架构 系统基于 C/S 模型,即客户端(Client)和服务器(Server)两层架构设计。通过 分 层设计,可以有效的降低系统设计的耦合度,减少客户端和服务器间的依赖性,设计人 员可以集中精力实现各自的模块, 只需要对外提供访问的接口, 同时可以提供安全认证。 C/S 架构间的信息交互只需要通过一层,提高访问速度。 苏州科技学院本科生毕业设计(论文) .2 系统采用的设计模式系统采用的设计模式 预约挂号系统采用了 MVC 设计模式,MVC 模式是软件开发过程中采用的一种架 构模式,它把软件系统开发分成了模型(Model)、视图(View)和控制器 (Controller)3 个部分。 1)视图层:提供软件和用户直接交互的图形界面。比如 JAVAEE 中采用 JSP 界面 显示数据,ASP.NET 的用户界面 aspx 等等,用户通过视图查看关心的业务数据,同时 用户提交的数据可以通过视图中的相关控件输入。Android SDK 开发能够很好的将视图 层分离,并以 XML 文件的形式放入“res/”目录中。程序开发人员能够方便的调用数据, 同时增加了程序的可读性,也有利于软件后期的维护和更新。 2)模型层:存放程序中调用的实体类以及处理程序的业务逻辑,包括对数据库的 操作、网络通信管理等。在 Android 中对应“src/”下的代码设计,具体可以分为实体模 型层和业务模型层。 3) 控制层: 用于接收用户的操作, 通过模型和视图的协作完成用户请求。 在 Android 开发中,用户点击视图上的按钮或者选项,控制器接受用户发送的请求,调用模型进行 处理,并更新视图。Activity 在 Android 中起着控制层角色,调用业务模型层处理耗时 操作,避免出现 ANR 导致系统奔溃。 图 2-3-1 MVC 组件类型关系图 苏州科技学院本科生毕业设计(论文) .3 系统的技术方案系统的技术方案 1)客户端:前台开发环境使用 Google 提供的 Android SDK 开发工具。 2)服务器:后台开发环境使用 MyEcplice 开发工具。 3)数据存储技术:服务器端数据存储使用 JDBC 技术访问后台的 MySQL 数据库, 进行数据操作;客户端数据存储使用 Android SDK 提供的 SharedPreferences 类,它是 一种通过创建 XML 文件进行轻量级的数据存储技术。 4)数据加密技术:使用 MD5 报文摘要算法对用户设置的密码进行加密存储,有 效的避免了使用明文存储敏感数据带来的安全隐患问题。 5)服务器和客户端交互技术:用户点击按钮,发送请求命令,客户端通过 HttpCliet 接口,采用基于 Apache HTTP 协议,实现服务器与客户端的通讯,服务器接收客户端 发送的请求,通过调用 web.xml 中对应的 Servlet 进行相应的处理。其中,服务器与客 户端使用 JSON 数据传输,JSON 是一种进行轻量级数据交换的格式,易于编写的阅读, 与传统的 XML 数据传输方式相比有着以下几点优势: (1)JSON 比 XML 体积小; (2)JSON 和 JavaScript 交互更加方便; (3)JSON 的速度要远远大于 XML; (4)JSON 的解析要比 XML 的解析要方便。 服务器与客户端数据通信传输技术实现,如下图所示: 图 2-3-2 服务器与客户端交互图 6)图片缓存技术:客户端请求服务器的大量图片,如果线程没有进行优化处理, 可能出现图片无法正常显示、加载缓慢、内存溢出,甚至导致系统奔溃等等影响用户 体验的问题。Android 开源网站 GitHub 上提供了一个功能强大的异步加载大量图片的 框架 Android-Universal-Image-Loader 很好的解决了这个问题。 Android-Universal-Image-Loader 作为一个优秀的开源图片处理项目,支持网络图 苏州科技学院本科生毕业设计(论文) 片的异步加载、参数设置、缓存处理等技术,为开发人员提供了方便的接口。其主要 的核心功能如下: (1)支持 Widget 窗口部件; (2)支持多线程的图片加载; (3)支持图片加载过程中的监听; (4)提供内存和本地的双缓存技术; (5)提供图片的个性化显示,如图片圆角处理已经渐变动画等的配置接口; (6)提供多样化的功能选项,包括线程管理,内存和 SDCard 卡缓存,参数初始 化工作等等。 2.42.4 系统功能模块划分系统功能模块划分 .1 客户端功能模块客户端功能模块 通过在已有的预约挂号业务基础上分析,从用户的角度进行系统设计,满足功能 实用、操作简单、运行流畅是设计的宗旨。系统客户端的整体功能划分如下表: 表 2-4-1 预约挂号客户端整体功能表 系统功能模块子功能 注册无 找回密码 登录 记住密码 选择科室、医生、时间段 提交订单预约挂号 医生收藏 我的医生继续预约该医生 取消预约挂号 最近预约 继续预约该医生 个人资料修改 密码修改 电话预约 退出当前账户 预约挂号客户端系统 个人中心 最近预约入口 苏州科技学院本科生毕业设计(论文) 我的医生入口 .2 服务器端功能模块服务器端功能模块 预约挂号系统大量的信息处理以及数据存储工作是在后台服务器进行实现。服务 器和客户端的交互采用即时通信模式,患者提交预约挂号成功,医生可以随时登陆后 台浏览挂号信息,同时系统管理员可以对数据库进行维护和数据更新。 系统的 web 端 整体功能需求如下表: 表 2-4-2 预约挂号 web 端整体功能表 系统用户类型功能模块子功能 医生浏览待就诊信息无 浏览医生信息 更新医生信息 删除医生 管理医生 添加新医生 管理用户浏览用户信息 浏览医生排诊记录 添加排诊记录 删除排诊记录 管理排诊信息 更新排诊信息 预约挂号后台系统 管理员 浏览挂号信息无 2.52.5 功能模块设计功能模块设计 .1 注册登录模块注册登录模块 注册登录模块提供用户登陆认证,只有注册成功的用户才可以进行预约挂号。用 户在注册时填写的身份证号码、手机号码、邮箱以及密码等信息需要通过正则表达式 验证,使用 MD5 报文摘要算法对密码进行加密存储。 .2 用户用户 UIUI 模块模块 用户 UI 模块提供了和用户交互的界面,包括预约挂号、我的医生、最近预约、个 人资料等界面,用户可以通过浏览科室,查看在线医生,就诊时间段,进行快速预约 挂号,界面设计简洁,降低用户的学习成本。 苏州科技学院本科生毕业设计(论文) .3 数据传输模块数据传输模块 数据传输模块包括客户端和服务器间数据实时传输、交互功能以及客户端不同 Activity间的数据传递。客户端和服务器通过 HttpClient 进行通信,基于 Apache HTTP 协议。多个 Activity 间数据传递采用了 Intent 意图传输机制以及利用 Application 实现 一些全局对象的存储、传输和处理。 .4 数据处理模块数据处理模块 数据处理模块包括服务器对客户端发送请求处理和客户端的数据解析。服务器端响 应客户端发送的 URL,对请求进行识别,调用 Servlet,将处理后的数据以 JSON 格式通 过网络返回给客户端,客户端接收数据后进行解析处理,同时服务器将相应的数据存储 在数据库表中。 .5 数据存储模块数据存储模块 数据存储模块实现客户端和服务器的数据存储。客户端利用基于 Android SDK 的 SharePreferences 类进行存储。SharePreferences 是以键值对的方式来存储简单的数据, 使用 XML 文件保存到手机。服务器利用 MySQL 数据库,使用 JDBC 技术对数据库表 进行添加、删除、查询、修改等操作。 苏州科技学院本科生毕业设计(论文) 第第 3 3 章章 数据库设计数据库设计 3.13.1 数据库类型数据库类型 预约挂号系统的大量数据存储是在后台进行,客户端发送请求,服务器查询数据库 中的信息,将数据返回给客户端并以界面形式呈现给用户。根据不同模型的数据结构进 行数据存储和构建,可以将数据库分为层次型数据库、网状型数据库以及关系型数据库 三种类型。 1)网状型数据库 网状型数据库采用网状模型数据结构组织数据。DBTG(Data Base Task Group)系 统是网状型数据库的典型代表。网状模型一般需要满足以下两个条件的集合: (1)至少有一个结点没有双亲结点; (2)结点中可以有多个多余一个双亲结点。 图 3-1-1 网状模型的例子 2)层次型数据库 在网状型数据库出现不久,层次型数据库随即诞生。其中,最典型的层次型数据库 代表是 IBM 公司的 IMS(Information Management System)系统,它是采用层次模型的 数据结构进行数据存储的数据库。 苏州科技学院本科生毕业设计(论文) 图 3-1-2 层次模型的例子 3)关系型数据库 关系型数据库是以行和列的形式进行数据存储,方便用户理解和操作,同时每个关 系模型页对应一张表,是现阶段开发人员使用最广泛、最受欢迎的数据库。ACCESS, Oracle,SQL Server,MySQL 都是典型的关系型数据库。 系统的服务器端数据库设计采用了 MySQL 数据库。关系型数据库与其他两种类型 的数据库相比存在的优势如下: (1)容易理解:关系型数据库利用二维表进行数据存储操作,完全符合现实世界 中的逻辑概念,相比其他两种存储模型理解起来更加简单。 (2)使用方便:程序员或者数据库管理员可以使用 SQL 语言对数据库进行操作, 也可以在图形界面上直接操作数据库。 (3)易于维护:关系型数据库具有严格的完整性约束,包括实体完整性、参照完 整性、用户自定义的完整性,同时可以使用主外键关联,有效的降低了数据冗余,避免 数据不一致的问题。 3.23.2 数据表设计数据表设计 用户表记录用户的个人信息,包括姓名、性别、密码等字段,具体设计如下表所示: 表 3-2-1 用户表 序号字段名字段描述数据类型长度允许空值备注 1id用户 idint50否主键 2sex性别varchar50否男或者女 3birthday生日varchar50否例:1992-10-18 4realname真实姓名varchar50否用户姓名 5telphone手机号varchar50否手机号码 苏州科技学院本科生毕业设计(论文) 6idcard身份证号varchar50否身份证号码 7password密码varchar50否不小于 6 位的字符 8email邮箱varchar50否注册的邮箱 .2 医生表医生表 医生表记录医生的个人信息,包括医生员工号、姓名,性别、科室、介绍等字段, 具体设计如下表所示: 表 3-2-2 医生表 序号字段名字段描述数据类型长度允许空值备注 1d_id医生 idint50否主键 2d_employeeID员工号varchar100否后台登陆账户 3d_name姓名varchar50否医生姓名 4d_grade医生职称varchar50否等级分类 5d_sex性别varchar50否男或者女 6d_department所属科室varchar50否例:内科、外科 7d_info医生描述varchar10000否医生相关介绍 8d_image头像varchar1000是显示头像或者默认 8d_money诊金int50否按职称区分 8d_password登陆密码varchar50否后台登陆密码 .3 排诊表排诊表 排诊表用于保存医生的排诊记录,每条记录包括医生编号、就诊日期、时间等字 段,具体设计如下表所示: 表 3-2-3 排诊表 序号字段名字段描述数据类型长度允许空值备注 1p_id排诊 idint50否主键 2d_id医生 idint50否外键 3p_date就诊日期varchar50否例:2015/5/14 4p_time就诊时间varchar50否例:9:00 苏州科技学院本科生毕业设计(论文) 5p_selected号源状态tinyint1否1:已选;0:未选 .4 挂号表挂号表 挂号表保存患者的挂号信息,每条记录包括患者 id、医生 id、排诊 id、预约码、 支付状态等字段,具体设计如下表所示: 表 3-2-4 挂号表 序号字段名字段描述数据类型长度允许空值备注 1g_id挂号 idint50否主键 2u_id用户 idint50否外键 3d_id医生 idint50否外键 4p_id排诊 idint50否外键 5g_code预约码varchar100否系统返回预约码 6g_payed支付状态tinyint1否1:已支付;0:未支付 .5 收藏表收藏表 收藏保存用户的医生收藏记录,方便用户复诊预约操作。每条记录包括收藏 id、 用户 id、医生 id 字段,具体设计如下表所示: 表 3-2-5 收藏表 序号字段名字段描述数据类型长度允许空值备注 1c_id挂号 idint50否主键 2u_id用户 idint50否外键 3d_id医生 idint50否外键 .6 数据库整体数据库整体 E-RE-R 图图 通过以上数据库表的设计,分析数据库的所有实体对象以及对象与对象之间的联 系,画出如下 E-R 图: 苏州科技学院本科生毕业设计(论文) 图 3-2-6 数据库 E-R 图 第第 4 4 章章 系统功能实现系统功能实现 4.14.1 客户端客户端 .1 ActivityActivity 管理机制管理机制 预约挂号系统的实现是基于多个 Activity 间的切换,因此 Activity 的管理工作至关 重要。Activity 的一个生命周期是指从这个 Activity 启动一直到它被销毁的整个阶段, 并且在一个生命周期中, Activity会经历多种的状态变化。 Activity生命周期如下图所示: 苏州科技学院本科生毕业设计(论文) 图 4-1-1 Activity 生命周期 上图可以看出一个 Activity 在整个生命周期中的状态变换过程,但是当系统存在多 个 Activity的时候, 生命周期变得更加复杂, 不易管理。 Application的生命周期比 Activity 长,当某个 Activity 被销毁时,Application 不会销毁,只有当任务栈中所有的 Activity 被销毁, Application才会结束, 所以使用 Application管理 Activity, 可以实现多个 Activity 间的数据共享,以及关闭应用中所有 Activity,安全退出整个程序。预约挂号系统设计 利用自定义的 MyApplication 管理 Activity,并且 MyApplication 的对象是通过单例模式 创建,保证使用一个对象能够维护和管理多个 Activity。核心代码实现如下: 苏州科技学院本科生毕业设计(论文) .2 HttpPostHttpPost 网络访问实现网络访问实现 网络访问在系统设计的多个模块中都有涉及,所以可以将网络访问功能单独来实 现,封装成一个通用方法,方便程序在任何需要的地方调用,同时避免相似功能的代 码进行重复编写工作,也为后期功能的扩展提供了公共的访问接口。核心代码如下: 苏州科技学院本科生毕业设计(论文) 在程序需要访问服务器的模块中,通过调用该方法,只需要传入对应的 URL 地址 请求参数。通过 EntityUtils.toString 方法获取响应参数,如果返回数据以”“开头,表 明为 JSONArray 对象,属于正常响应,通过对 JSONArray 进行解析并显示在界面上。 .3 注册功能实现注册功能实现 注册模块界面设计如下: 苏州科技学院本科生毕业设计(论文) 图 4-1-3 注册界面 用户填写注册信息,点击提交按钮,先验证注册信息是否完整以及格式是否正确, 最后通过 HTTP 网络协议将信息发送到服务器端进行处理,核心代码如下: 苏州科技学院本科生毕业设计(论文) 用户注册的信息使用正则表达式进行验证,只有验证通过才能够继续执行网络请 求。发送请求的核心代码如下: 注册模块访问服务器 URL 、请求参数、响应参数如下表所示: 表 4-1-3 注册模块参数表 请求链接请求参数响应参数 用户注册/UserRegisterServlet params: realname=xxx,sex = xxx,birthday = xxx,telphone= xxx,idcard= xxx, password= xxx, email= xxx 正常响应:success 异常响应:failed .4 登陆功能实现登陆功能实现 用户登陆模块界面设计如下: 苏州科技学院本科生毕业设计(论文) 图 4-1-4 用户登陆界面 登陆模块包括登陆验证、记住密码、忘记密码以及提供注册接口功能。 1)登陆验证 用户填写账号密码,点击登陆按钮,与服务端数据进行用户认证。核心代码实现 如下: 2)记住密码 用户登陆时,如果勾选了记住密码选项,在重新登陆时不必再次输入密码,账户和 密码自动填写,同理,取消记住密码将不会自动填写。核心代码实现如下: 苏州科技学院本科生毕业设计(论文) 在用户忘记登录密码并且重新设置的情况下,记住密码应该是当前设置的新密码。 核心代码实现如下: 在登录 Activity 中,需要将获取的密码重新保存一下。 3)忘记密码 用户忘记了登录密码,可以通过点击”忘记密码”重新设置,密码重置成功,使 用 Intent 将新密码发送给登陆 Activity。 苏州科技学院本科生毕业设计(论文) 登陆功能访问服务器的 URL 、请求参数、响应参数如下表所示: 表 4-1-4 登陆模块功能 请求链接请求参数响应参数 用户登陆/LoginServletparams: idcard=xxx, password= xxx 正常响应:success 异常响应:failed .5 预约挂号功能实现预约挂号功能实现 预约挂号模块是系统设计的核心部分,提供科室、医生以及选择预约时间功能。 1)科室选择 科室选择界面列出医院的科室分类信息,用户通过点击相应科室进行操作,界面 设计如下图: 苏州科技学院本科生毕业设计(论文) 图 4-1-5-1 科室界面 界面布局采用 GridView 网格样式控件,使用自定义的 Adapter 适配器填充数据。 用户点击科室跳转至医生选择界面,核心代码实现如下: 苏州科技学院本科生毕业设计(论文) 2)医生选择 用户通过点击某个科室,将跳转到显示这个科室所有医生的 Activiy。界面设计如 下: 图 4-1-5-2 医生界面 该功能通过使用 listview 和 adapter 实现医生列表显示以及响应用户点击事件,与 科室选择的功能实现类似,主要区别是在于医生数据是通过访问服务器获取。核心代 码实现如下: 苏州科技学院本科生毕业设计(论文) 获取所有医生访问服务器的 URL 、请求参数、响应参数如下表所示: 表 4-1-5-1 科室医生查询参数表 请求链接请求参数响应参数 科室医生查询/ DoctorServletparams: department=xxx 正常响应:“doc_id”:xxx,” doc_empID”:xxx,”doc_name”:xxx, ”doc_grade”:xxx,”doc_sex”:xxx,”d oc_department”:xxx,”doc_info”:xx x,”doc_image_url”:xxx,”doc_mone y”:xxx,. 异常响应:failed 3)医生收藏 点击医生选项进入该医生的详细界面,如下图所示: 图 4-1-5-3 收藏界面 用户点击收藏按钮可以收藏该医生,再次点击可以取消收藏,核心代码如下: 苏州科技学院本科生毕业设计(论文) 收藏医生访问服务器的 URL 、请求参数、响应参数如下表所示: 表 4-1-5-2 收藏模块参数表 请求链接请求参数响应参数 医生收藏/ LikedOrUnLikedServlet params: u_id=xxx,d_id=xxx, selected=xxx 取消收藏:unliked true 收藏:liked true 4)浏览医生简介和排诊信息 用户可以点击“简介”和“挂号”按钮实现界面切换,如下图所示: 苏州科技学院本科生毕业设计(论文) 图 4-1-5-4 简介和挂号界面 浏览简介和挂号信息功能类似,其中,排诊信息以网格形式显示,可以动态展开 和收缩,节省屏幕空间,利用 ExpandableListView 和继承于 BaseExpandableListAdapter 的自定义 adapter 实现。获取服务器端的排诊信息核心代码如下: 从服务器获取了所有的排诊记录,但是需要将同一天的号源归纳在一起,便于患 者浏览和选择,使用 TreeSet 实现该需求。设计如下: 5)订单提交 用户点击某个号源,跳转至订单提交 Activity。界面设计如下: 苏州科技学院本科生毕业设计(论文) 图 4-1-5-5 订单界面 在选择支付方式时,如果用户选择了窗口支付,会直接跳转至订单详情界面;如果 用户选择了”在线支付” ,将跳转至支付界面,如下图: 图 4-1-5-6 支付界面 用户点击“确认支付”按钮,支付成功,跳转至订单详情界面。 苏州科技学院本科生毕业设计(论文) 图 4-1-5-7 订单详情界面 用户点击提交按钮,服务器端自动生成该订单,代码实现如下: 提交订单访问服务器的 URL、请求参数、响应参数如下表所示: 表 4-1-5-3 订单提交参数表 请求链接请求参数响应参数 订单提交/ InsertGuaHaoItemServlet params: u_id=xxx,d_id=xxx, p_id=xxx, g_payed=xxx 成功:success 失败:failed .6 我的医生功能实现我的医生功能实现 用户通过点击“我的医生”按钮,会进入医生收藏对应的 Activity,浏览所有收藏 的医生。界面设计如下: 苏州科技学院本科生毕业设计(论文) 图 4-1-6 我的医生 查询收藏医生和选择医生功能类似,区别在于获取数据源不同,并且长按某个医 生可以删除这条收藏记录,功能实现如下: 值得一提的是,当收藏记录被删除,数据源会发生变化,相应的界面应该及时刷 新,所以需要向适配器对象发送通知。代码如下: 长按删除某收藏医生访问服务器的 URL 、请求参数、响应参数如下表所示: 苏州科技学院本科生毕业设计(论文) 表 4-1-6 我的医生参数表 请求链接请求参数响应参数 删除收藏医生/ LikedOrUnLikedServlet params: u_id=xxx,d_id=xxx, selected =false 成功:success 失败:failed .7 最近预约功能实现最近预约功能实现 用户通过点击”最近预约”按钮,会进入预约 Activity。界面设计如下: 图 4-1-7 最近预约 最近预约功能用于显示用户已挂号记录,包括医生信息、预约码、就诊时间等, 同时提供取消该预约和继续预约功能。核心代码实现如下: 苏州科技学院本科生毕业设计(论文) 查询挂号记录访问服务器的 URL 、请求参数、响应参数如下表所示: 表 4-1-7 我的医生参数表 请求链接请求参数响应参数 获取挂号记录/GetAllOrderServletparams: u_id=xxx 成功:success 失败:failed .8 个人中心功能实现个人中心功能实现 个人中心提供了最近预约、我的医生入口,也包括修改个人资料和密码,12580 电 话预约功能。界面设计如下图所示: 图 4-1-8-1 个人中心 1)最近预约以及我的医生 用户点击最近预约或者我的医生会跳转至对应的 Activity,为用户提供了多个程序 入口。核心代码如下: 苏州科技学院本科生毕业设计(论文) 2)修改资料以及密码 用户通过点击修改资料或者密码选项,实现对应的操作。如下图所示: 图 4-1-8-2 个人信息修改 修改个人资料和修改密码功能类似,用户填写新设置的信息,点击提交按钮,如果 输入信息格式正确,提交至服务器,提示修改成功。以修改个人资料为例,代码实现如 下: 苏州科技学院本科生毕业设计(论文) 用户修改个人资料访问服务器的 URL 、请求参数、响应参数如下表所示: 表 4-1-8 资料修改参数表 请求链接请求参数响应参数 修改个人资料/ UpdateUserInfoServlet params: telphone=xxx, email=xxx u_id=xxx 成功:success 失败:failed 3)12580 电话预约 用户可以通过该功能拨打 12580,进行电话预约服务,为患者预约挂号提供了多个 途径,如下图所示: 图 4-1-8-3 12580 电话预约 苏州科技学院本科生毕业设计(论文) 电话预约功能的核心代码实现如下: .9 语音提示功能实现语音提示功能实现 语音提示功能通过调用第三方手说 TTS 提供的 Jar 包,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论