基于Android的医院就诊预约管理系统的设计和实现毕业论文_第1页
基于Android的医院就诊预约管理系统的设计和实现毕业论文_第2页
基于Android的医院就诊预约管理系统的设计和实现毕业论文_第3页
基于Android的医院就诊预约管理系统的设计和实现毕业论文_第4页
基于Android的医院就诊预约管理系统的设计和实现毕业论文_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

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

文档简介

1、 II基于Android的医院就诊预约管理系统的设计和实现毕业论文目录TOC o 1-5 h z HYPERLINK l bookmark6 第1章绪论1 HYPERLINK l bookmark8 1.1研究背景和意义1 HYPERLINK l bookmark10 1.2国内外研究概况2 HYPERLINK l bookmark12 第2章需求分析与总体设计42.1系统业务流程4 HYPERLINK l bookmark14 2.2系统功能需求分析5 HYPERLINK l bookmark16 Android客户端5 HYPERLINK l bookmark18 web医生端6 HYPE

2、RLINK l bookmark20 web管理员端6 HYPERLINK l bookmark22 2.3系统结构设计6 HYPERLINK l bookmark24 系统体系架构6 HYPERLINK l bookmark26 系统采用的设计模式6 HYPERLINK l bookmark28 系统的技术方案7 HYPERLINK l bookmark30 2.4系统功能模块划分9 HYPERLINK l bookmark32 2.4.1客户端功能模块92.4.2服务器端功能模块9 HYPERLINK l bookmark34 2.5功能模块设计10 HYPERLINK l bookmar

3、k36 2.5.1注册登录模块10 HYPERLINK l bookmark38 2.5.2用户UI模块10 HYPERLINK l bookmark40 数据传输模块10 HYPERLINK l bookmark42 数据处理模块11 HYPERLINK l bookmark44 数据存储模块11 HYPERLINK l bookmark46 第3章数据库设计12 HYPERLINK l bookmark48 3.1数据库类型12 HYPERLINK l bookmark50 3.2数据表设计13 HYPERLINK l bookmark52 医生表13 HYPERLINK l bookma

4、rk54 排诊表14挂号表14收藏表153.2.6数据库整体E-R图15 HYPERLINK l bookmark56 第4章系统功能实现16 HYPERLINK l bookmark58 4.1客户端16 HYPERLINK l bookmark60 4.1.1Activity管理机制16 HYPERLINK l bookmark62 4.1.2HttpPost网络访问实现17 HYPERLINK l bookmark66 4.1.3注册功能实现18 HYPERLINK l bookmark68 4.1.4登陆功能实现204.1.5预约挂号功能实现234.1.6我的医生功能实现304.1.7

5、最近预约功能实现324.1.8个人中心功能实现334.1.9语音提示功能实现36 HYPERLINK l bookmark76 4.2服务器端37 HYPERLINK l bookmark78 4.2.1管理员登陆374.2.2医生登陆38 HYPERLINK l bookmark80 第5章系统测试39 HYPERLINK l bookmark82 5.1数据库加密测试39 HYPERLINK l bookmark84 5.2功能测试40 HYPERLINK l bookmark92 5.3性能测试46结论47致谢48参考文献49 HYPERLINK l bookmark100 附录X译文5

6、1 HYPERLINK l bookmark102 活动51 HYPERLINK l bookmark112 附录Y外文原文66 HYPERLINK l bookmark114 Activities66III 第1章绪论1.1研究背景和意义近几年来,随着科技发展的日新月异,智能手机的功能也在不断的完善,比如大家除了使用手机打电话、发短信、浏览网页、听音乐等基本功能,还可以利用手机转账,炒股,订餐以及智能家居等强大的功能,如果说电脑的发展带来了第三次科技革命,那么智能手机将必定带来第四次科技革命。手机预约挂号就是这次科技革命的成果。虽然科技在不断进步,但是面对中国近14亿的人口情况下也无济于事,

7、医院的就诊挂号一直是个老生常谈的问题,包括怎样做到以病人为中心,将挂号、就诊、交费、取药的步骤统一管理,缓解病人挂号排长队、等待时间长、缴费难等问题。使用手机预约挂号,患者不需要亲自前往医院,也就避免看病的”三长一短”问题,能够轻松的查看医生个人信息、排班信息,根据个人情况选择就诊时间和医生,完成预约挂号的服务,享受科技带来的便捷。目前网络上可供下载的医院挂号APP不在少数,比如挂号管家、挂号助手、挂号找我等等。但是很多APP要么是收费,要么操作起来很难上手,降低用户体验,还有的只是简单实现了挂号功能,没有给出医生具体的排班情况,仍然需要患者现场确认时间,可以说真正适合用户使用的一款软件并不是

8、很多。通过上述对问题的研究以及用户的真实需求,本次基于Android的预约挂号系统设计和实现具体重要意义,大致包括以下几点:一、减少患者挂号排队时间。手机进行预约挂号,患者可以享受预约优先服务,即优先挂号、优先检查,使得患者看病等待时间大大的减少。二、挂号方便、准确、安全。患者通过手机查看医生排班时间,依据自己的实际情况选择合适的时间就诊,可以选择现场支付或者在线支付,现场支付需要凭预约号至指定窗口领号,而在线支付患者只需凭预约号直接到医院的相关科室就诊。如果在规定时间没有前来就诊,挂号费会自动返回到用户账户,安全可靠。三、医院信息透明化。医院信息通过一个平台对外共享,患者和有关部门能够监督医

9、院工作动态。医院将医生的预约挂号信息第一时间上传至网络,所有的患者可以及时浏览医生排班信息,保证了预约挂号的公平、公正性,有效的改善病人对医院的信任关系。四、提高医院的服务品质。救死扶伤是医生必须具备的本质,医院应当更好的发挥为人们服务的态度,包括降低患者的等待时间,医疗资源的合理分配,医院能够合理、有序的运行,成为广大患者值得信赖的医疗单位。五、增加医院的社会竞争力。手机预约挂号工作的大力推广,不但可以减轻医院窗口挂号的人口流量,患者可以第一时间得到医生的就诊,遏制病情拖延带来的危险,提升了医院的服务质量,同时患者有需要会及时前来复诊,保障医院病人来源的保持和增长,这对于医院的改革和发展是至

10、关重要的因素之一。六、平台开放性。在手机市场的激烈竞争中,Android操作系统以强大的优势独树一帜。Android操作系统是基于Linux内核开发,开放源代码,开发人员可以定制系统。在平板电脑、智能手机等领域占有很大的地位,因此吸引了大量的移动终端厂商前赴后继的加入进来。本次毕业设计的医院就诊预约挂号系统就是基于Android操作系统进行设计和实现的,面向Android手机用户群。1.2国内外研究概况自从上世纪60年代初,医院信息管理系统(HMIS)在很多发达国家就得到了大力的发展和进一步的研究,70-80年代美国的HMIS有了较大的进步,尤其是在解决医院预约挂号的问题上取得了累累硕果。在很

11、多欧美国家,通常患者看病都需要先进行预约挂号,除非急诊,很少有人直接到医院找医生,没有预约报告单医生无法进行接诊。患者看病具体步骤如下:1)除急诊以外,先由社区家庭医生为患者诊疗,一旦认为有必要,会建议患者转诊到专科医疗中心或专科医院治疗。2)患者同意转诊,家庭医生联系专科医生,为患者开转诊单。3)患者联系待转诊医院,电话预约就诊时间。4)在预约的时间内凭转诊单及时前往医院就诊。各级医生的工作分工明确,有条不紊的进行。医疗机构间建立的有效转诊制度,为医疗质量提供了保障。和发达国家相比,我们国内的预约挂号在近几年发展也很迅速,手机预约挂号服务在很多医院也进行了实施。在开展预约挂号服务的大部分医院

12、,存在数据不准确、推广力度低等问题,患者实际使用预约挂号软件的比例少,医院看病的“三长一短”现状仍然没有的得到改善,对于用户失约和黄牛倒号卖号的现象,没有出台有效的防范措施,相比国外的医疗水平仍然有很大的差距。国内医院预约挂号方式多种多样,主要分为以下几种:一、窗口预约病人需要花费很多时间前往医院,通过和工作人员交流,填写预约信息,但是由于工作人员不能方便的了解患者的病史以及确定上次就诊的医生,也就不能保证患者正常预约到同一位医生进行诊疗。二、电话预约电话预约不需要患者到医院窗口挂号以及人工的方式填写预约的相关资料。避免被安排到不同医生的状况,但是对于很多初次使用该方式的患者而言,由于不熟悉语

13、音系统,将需要花费许多时间听系统将所有的就诊选项的代号播报结束才能做选择,并且一旦输入错误,需要重新输入预约信息,耽误及时就诊时机。三、网络预约网络预约挂号是由医院相关部门建立的网站,通过互联网预约挂号的一种方式。网络预约相比现场预约和电话预约,很好的避免患者拥堵现象。在年轻人中广泛使用,由于很多老年人没有接触过计算机,也就很少采用这种方式。四、自助挂号终端预约患者通过在医院里的自动挂号终端进行预约,通常终端上有操作流程和方法,方便患者完成挂号,但是需要患者到医院挂号终端排队使用。五、公共服务平台预约一些大型医院和通信运营商合作,提供的公共预约挂号服务平台,比如电信的114,移动的12580。

14、用户通过拨打服务电话预约,但是由于这类平台同时也提供了很多其他的功能,所以用户经常会出现抢线,断线等状况。第2章需求分析与总体设计2.1系统业务流程经过对网络上现有的大量预约挂号平台的研究和医院实地考察,使用预约挂号客户端到医院看病的总体流程一般需要经过如下几个步骤:1)用户注册、登陆系统。2)选择就诊的科室、医生、预约时间。3)选择支付方式,提交订单。4)系统给用户返回确认信息及预约码5)用户选择窗口支付,提供预约码到医院指定窗口缴费并领取挂号单,凭挂号单到门诊科室医生就诊;如果是在线支付,可直接凭预约码到门诊科室医生就诊。6)根据专家医生开出的处方到收费窗口缴纳费用。7)凭收据到药房取药。

15、8)离院。如果有需要可至医院进行复诊。医院预约挂号流程具体详情如下图所示:图2-1手机预约挂号流程图2.2系统功能需求分析截止2014年年底,根据国际电信联盟公布的ICT报告数据显示,全球已经有超过30亿人使用互联网,而在这近30亿的人口中接近2/3的互联网用户来自发展中国家。中国作为一个人口超过13亿的发展中国家,对互联网的依赖越来越大。全球信息化风暴给信息技术带来了翻天覆地的革新,这也要求社会各行各业的信息化建设需要创新和完善以满足时代的需求。医疗行业同样面临着这样的难题,包括怎样建设满足客观需求的医疗信息化系统、病人及时就医、保护医院投资、以及方便医院往后的扩张等等问题。针对我国现有的医

16、疗资源紧缺、分配不合理、工作效率低从而导致病人看病难,就诊不及时的情况,医疗系统的信息化推广建设势在必行。大力推广医院预约挂号服务不但可以减少医院的窗口服务压力,而且可以提前通知医生安排就诊,从而很好的提高医院的服务质量,保障了患者及时就诊的权益,也避免了医院看病”三长一短”问题。本次医院预约挂号系统是通过将病人预约的环节转移到手机上操作,从而实现患者可以不出家门和排长队,能够随时随地轻松挂号。通过上节对预约挂号系统业务流程的分析,进行系统的需求设计。系统应具备如下功能。Android客户端1)用户注册、登陆用户填写注册所需相关资料,凭账户(即身份证号)和密码登陆系统。2)个人资料修改用户登陆

17、系统后可以修改除身份证号码、姓名、性别以外的资料。3)科室、医生及排诊信息查询用户登陆系统后可以浏览科室、医生以及该医生的排诊详情。4)订单提交用户登陆系统,根据自己病情选择科室、医生,选择合适的时间就诊。用户提交订单可以选择在线支付或者窗口支付,一旦订单提交成功系统会返回预约码,凭预约码到医院就诊。5)预约挂号记录查询及取消用户提交订单成功后可以浏览挂号记录,如果有特殊问题可以取消挂号。如果用户选择的是在线支付,系统应当在限定时间内将诊金返回到用户账户中。6)医生收藏用户可以收藏自己喜欢的医生,可以方便浏览该医生的排诊信息,能够及时挂号和复诊。web医生端1)医生登陆医生输入员工编号以及密码

18、登陆后台。2)浏览挂号详情医生登陆系统可以查看哪些患者选择了自己的排诊记录,根据具体时间提前安排出诊。web管理员端1)管理员登陆系统管理员输入账号以及密码登陆后台。2)管理医生管理员登陆系统可以查看所有医生、更新医生信息、删除以及添加新医生。3)管理用户管理员可以浏览用户注册填写的个人信息。4)管理医生排诊管理员可以浏览所有医生的排诊信息、添加、删除以及更新排诊记录。5)管理患者挂号记录管理员可以查看用户所有的订单记录,包括用户、医生信息,以及预约时间等信息。2.3系统结构设计2.3.1系统体系架构系统基于C/S模型,即客户端(Client)和服务器(Server)两层架构设计。通过分层设计

19、,可以有效的降低系统设计的耦合度,减少客户端和服务器间的依赖性,设计人员可以集中精力实现各自的模块,只需要对外提供访问的接口,同时可以提供安全认证。C/S架构间的信息交互只需要通过一层,提高访问速度。2.3.2系统采用的设计模式预约挂号系统采用了MVC设计模式,MVC模式是软件开发过程中采用的一种架构模式,它把软件系统开发分成了模型(Model)、视图(View)和控制器(Controller)3个部分。1)视图层:提供软件和用户直接交互的图形界面。比如JAVAEE中采用JSP界面显示数据,ASP.NET的用户界面aspx等等,用户通过视图查看关心的业务数据,同时用户提交的数据可以通过视图中的

20、相关控件输入。AndroidSDK开发能够很好的将视图层分离,并以XML文件的形式放入“res/”目录中。程序开发人员能够方便的调用数据,同时增加了程序的可读性,也有利于软件后期的维护和更新。2)模型层:存放程序中调用的实体类以及处理程序的业务逻辑,包括对数据库的操作、网络通信管理等。在Android中对应“src/”下的代码设计,具体可以分为实体模型层和业务模型层。3)控制层:用于接收用户的操作,通过模型和视图的协作完成用户请求。在Android开发中,用户点击视图上的按钮或者选项,控制器接受用户发送的请求,调用模型进行处理,并更新视图。Activity在Android中起着控制层角色,调用

21、业务模型层处理耗时操作,避免出现ANR导致系统奔溃。图2-3-1MVC组件类型关系图系统的技术方案1)客户端:前台开发环境使用Google提供的AndroidSDK开发工具。2)服务器:后台开发环境使用MyEcplice开发工具。3)数据存储技术:服务器端数据存储使用JDBC技术访问后台的MySQL数据库,进行数据操作;客户端数据存储使用AndroidSDK提供的SharedPreferences类,它是种通过创建XML文件进行轻量级的数据存储技术。数据加密技术:使用MD5报文摘要算法对用户设置的密码进行加密存储,有效的避免了使用明文存储敏感数据带来的安全隐患问题。服务器和客户端交互技术:用户

22、点击按钮,发送请求命令,客户端通过HttpCliet接口,采用基于ApacheHTTP协议,实现服务器与客户端的通讯,服务器接收客户端发送的请求,通过调用web.xml中对应的Servlet进行相应的处理。其中,服务器与客户端使用JSON数据传输,JSON是一种进行轻量级数据交换的格式,易于编写的阅读,与传统的XML数据传输方式相比有着以下几点优势:JSON比XML体积小;(2)JSON和JavaScript交互更加方便;JSON的速度要远远大于XML;JSON的解析要比XML的解析要方便。服务器与客户端数据通信传输技术实现,如下图所示:图2-3-2服务器与客户端交互图图片缓存技术:客户端请求

23、服务器的大量图片,如果线程没有进行优化处理,可能出现图片无法正常显示、加载缓慢、内存溢出,甚至导致系统奔溃等等影响用户体验的问题。Android开源网站GitHub上提供了一个功能强大的异步加载大量图片的框架Android-Universal-Image-Loader很好的解决了这个问题。Android-Universal-Image-Loader作为一个优秀的开源图片处理项目,支持网络图片的异步加载、参数设置、缓存处理等技术,为开发人员提供了方便的接口。其主要的核心功能如下:(1)支持Widget窗口部件;支持多线程的图片加载;支持图片加载过程中的监听;提供内存和本地的双缓存技术;5)提供图

24、片的个性化显示,如图片圆角处理已经渐变动画等的配置接口;(6)提供多样化的功能选项,包括线程管理,内存和SDCard卡缓存,参数初始化2.4系统功能模块划分客户端功能模块通过在已有的预约挂号业务基础上分析,从用户的角度进行系统设计,满足功能实用、操作简单、运行流畅是设计的宗旨。系统客户端的整体功能划分如下表:表2-4-1预约挂号客户端整体功能表系统功能模块子功能预约挂号客户端系统注册无登录找回密码记住密码预约挂号选择科室、医生、时间段提交订单医生收藏我的医生继续预约该医生最近预约取消预约挂号继续预约该医生个人中心个人资料修改密码修改电话预约退出当前账户最近预约入口我的医生入口服务器端功能模块预

25、约挂号系统大量的信息处理以及数据存储工作是在后台服务器进行实现。服务器和客户端的交互采用即时通信模式,患者提交预约挂号成功,医生可以随时登陆后台浏览挂号信息,同时系统管理员可以对数据库进行维护和数据更新。系统的web端整体功能需求如下表:表2-4-2预约挂号web端整体功能表系统用户类型预约挂号后台系统医牛管理员功能模块子功能浏览待就诊信息无管理医牛浏览医生信息更新医生信息删除医生添加新医生管理用户浏览用户信息管理排诊信息浏览医生排诊记录添加排诊记录删除排诊记录更新排诊信息浏览挂号信息无2.5功能模块设计注册登录模块注册登录模块提供用户登陆认证,只有注册成功的用户才可以进行预约挂号。用户在注册

26、时填写的身份证号码、手机号码、邮箱以及密码等信息需要通过正则表达式验证,使用MD5报文摘要算法对密码进行加密存储。2.5.2用户UI模块用户UI模块提供了和用户交互的界面,包括预约挂号、我的医生、最近预约、个人资料等界面,用户可以通过浏览科室,查看在线医生,就诊时间段,进行快速预约挂号,界面设计简洁,降低用户的学习成本。数据传输模块数据传输模块包括客户端和服务器间数据实时传输、交互功能以及客户端不同Activity间的数据传递。客户端和服务器通过HttpClient进行通信,基于ApacheHTTP协议。多个Activity间数据传递采用了Intent意图传输机制以及利用Application

27、实现一些全局对象的存储、传输和处理。数据处理模块数据处理模块包括服务器对客户端发送请求处理和客户端的数据解析。服务器端响应客户端发送的URL,对请求进行识别,调用Servlet,将处理后的数据以JSON格式通过网络返回给客户端,客户端接收数据后进行解析处理,同时服务器将相应的数据存储在数据库表中。数据存储模块数据存储模块实现客户端和服务器的数据存储。客户端利用基于AndroidSDK的SharePreferences类进行存储。SharePreferences是以键值对的方式来存储简单的数据,使用XML文件保存到手机。服务器利用MySQL数据库,使用JDBC技术对数据库表进行添加、删除、查询、

28、修改等操作。第3章数据库设计3.1数据库类型预约挂号系统的大量数据存储是在后台进行,客户端发送请求,服务器查询数据库中的信息,将数据返回给客户端并以界面形式呈现给用户。根据不同模型的数据结构进行数据存储和构建,可以将数据库分为层次型数据库、网状型数据库以及关系型数据库三种类型。网状型数据库网状型数据库采用网状模型数据结构组织数据。DBTG(DataBaseTaskGroup)系统是网状型数据库的典型代表。网状模型一般需要满足以下两个条件的集合:至少有一个结点没有双亲结点;结点中可以有多个多余一个双亲结点。(a)(b(c)图3-1-1网状模型的例子2)层次型数据库在网状型数据库出现不久,层次型数

29、据库随即诞生。其中,最典型的层次型数据库代表是IBM公司的IMS(InformationManagementSystem)系统,它是采用层次模型的数据结构进行数据存储的数据库。图3-1-2层次模型的例子3)关系型数据库关系型数据库是以行和列的形式进行数据存储,方便用户理解和操作,同时每个关系模型页对应一张表,是现阶段开发人员使用最广泛、最受欢迎的数据库。ACCESS,Oracle,SQLServer,MySQL都是典型的关系型数据库。系统的服务器端数据库设计采用了MySQL数据库。关系型数据库与其他两种类型的数据库相比存在的优势如下:(1)容易理解:关系型数据库利用二维表进行数据存储操作,完全

30、符合现实世界中的逻辑概念,相比其他两种存储模型理解起来更加简单。(2)使用方便:程序员或者数据库管理员可以使用SQL语言对数据库进行操作,也可以在图形界面上直接操作数据库。(3)易于维护:关系型数据库具有严格的完整性约束,包括实体完整性、参照完整性、用户自定义的完整性,同时可以使用主外键关联,有效的降低了数据冗余,避免数据不一致的问题。3.2数据表设计用户表记录用户的个人信息,包括姓名、性别、密码等字段,具体设计如下表所示:表3-2-1用户表序号字段名字段描述数据类型长度允许空值备注1id用户idint50否主键2sex性别varchar50否男或者女3birthday生日varchar50否

31、例:1992-10-184realname真实姓名varchar50否用户姓名5telphone手机号varchar50否手机号码6idcard身份证号varchar50否身份证号码7password密码varchar50否不小于6位的字符8email邮箱varchar50否注册的邮箱医生表医生表记录医生的个人信息,包括医生员工号、姓名,性别、科室、介绍等字段具体设计如下表所示:表3-2-2医生表序号字段名字段描述数据类型长度允许空值备注1d_id医生idint50否主键2d_employeeID员工号varchar100否后台登陆账户3d_name姓名varchar50否医生姓名4d_gra

32、de医生职称varchar50否等级分类5d_sex性别varchar50否男或者女6d_department所属科室varchar50否例:内科、外科7d_info医生描述varchar10000否医生相关介绍8d_image头像varchar1000是显示头像或者默认8d_money诊金int50否按职称区分8d_password登陆密码varchar50否后台登陆密码排诊表排诊表用于保存医生的排诊记录,每条记录包括医生编号、就诊日期、时间等字段具体设计如下表所示:表3-2-3排诊表序号字段名字段描述数据类型长度允许空值备注1p_id排诊idint50否主键2d_id医生idint50否外

33、键3p_date就诊日期varchar50否例:2015/5/144p_time就诊时间varchar50否例:9:005p_selected号源状态tinyint1否1:已选;0:未选3.2.4挂号表挂号表保存患者的挂号信息,每条记录包括患者id、医生id、排诊id、预约码、支付状态等字段,具体设计如下表所示:表3-2-4挂号表序号字段名字段描述数据类型长度允许空值备注1g_id挂号idint50否主键2u_id用户idint50否外键3d_id医生idint50否外键4p_id排诊idint50否外键5g_code预约码varchar100否系统返回预约码6g_payed支付状态tinyi

34、nt1否1:已支付;0:未支付3.2.5收藏表收藏保存用户的医生收藏记录,方便用户复诊预约操作。每条记录包括收藏id、用户id、医生id字段,具体设计如下表所示:序号字段名字段描述数据类型长度允许空值1c_id挂号idint50否2u_id用户idint50否3d_id医生idint50否表3-2-5收藏表3.2.6数据库整体E-R图备注主键外键外键通过以上数据库表的设计,分析数据库的所有实体对象以及对象与对象之间的联系,画出如下E-R图:什別2:U5:二飞出:二日匚二寸辽二vj二7二竺二二三二7W-二图3-2-6数据库E-R图第4章系统功能实现4.1客户端Activity管理机制预约挂号系统

35、的实现是基于多个Activity间的切换,因此Activity的管理工作至关重要。Activity的一个生命周期是指从这个Activity启动一直到它被销毁的整个阶段,并且在一个生命周期中,Activity会经历多种的状态变化。Activity生命周期如下图所示:图4-1-1Activity生命周期上图可以看出一个Activity在整个生命周期中的状态变换过程,但是当系统存在多个Activity的时候,生命周期变得更加复杂,不易管理oApplication的生命周期比Activity长,当某个Activity被销毁时,Application不会销毁,只有当任务栈中所有的Activity被销毁,

36、Application才会结束,所以使用Application管理Activity,可以实现多个Activity间的数据共享,以及关闭应用中所有Activity,安全退出整个程序。预约挂号系统设计利用自定义的MyApplication管理Activity,并且MyApplication的对象是通过单例模式创建,保证使用一个对象能够维护和管理多个Activity。核心代码实现如下:privatestaticIMyApplinationinstance:publicsialicMyApplication呂if(instance=null)Hireturainstance:HttpPost网络访问实

37、现网络访问在系统设计的多个模块中都有涉及,所以可以将网络访问功能单独来实现,封装成一个通用方法,方便程序在任何需要的地方调用,同时避免相似功能的代码进行重复编写工作,也为后期功能的扩展提供了公共的访问接口。核心代码如下:p-ublicStringpo-stRsquestfiiiialStringurLfinalX-IajxStrinSiringmap)thr-ovrsExceptionTLreadread=newTbr-ead(newKrnmableQpublicvoidruuOHttpdienthttpClient=newDefaultHttpClientQ:litrpClicnt.getP

38、aranisQ.seTarameter(reCo-miectimiPXamgCXJNNECTIONnMEOUT:5000);litrpCliem.getPafamsQ.setParmeterCoreCo-miectioiLPNnig.SO_TIMEOLrT,5C00):HttpPostpost=nwHttpPost(url);ListNameValiKPajoparams=newArrayListQ:for(Stringker:map-keygetQ)_trypost.setEntitr(EevUrJEnc-odedTomiEntiir(paiains?L1VIT-8):HttpRjespou

39、sehttpResponse=httpClient.execute(poEi);ifhttpILesfKnise.getStatiisLineQ.getStatusCodeQ=00)result=EnriryUtiIs.toStriiigtiiTrp-Rjesp&nse.getEntinO);ProgressDialogUtiIs.dismissTragressIialog();elsecatch.(Exceptione)ProgressDialoUtiIs.dismissPragressDialog();e.printSta-cUraceQ;return:);thread.srart);th

40、read.joinC);在程序需要访问服务器的模块中,通过调用该方法,只需要传入对应的URL地址请求参数。通过EntityUtils.toString方法获取响应参数,如果返回数据以”“开头,表明为JSONArray对象,属于正常响应,通过对JSONArray进行解析并显示在界面上。注册功能实现注册模块界面设计如下:图4-1-3注册界面用户填写注册信息,点击提交按钮,先验证注册信息是否完整以及格式是否正确最后通过HTTP网络协议将信息发送到服务器端进行处理,核心代码如下:ifextUtils.ismpiy(userTiaiTLe)ToastUtils.shwMessagthi鳥姓名不能为空:J

41、;retuni:dseif(TcxtUti1s.isEmp(sex)ToastUtils.shwMessage(tliis,1*性另U不能为空了return:elseifTextUtilsJmptr(btcthday)ToastUtils.showMessagtlis,生日不能为空jrewm:elseif(TextUti1s.isEmptyphonenumber)ToastUtils.shwXiessagfthis;.L手机号码不能为空jretura:elseif(1RjeexUt-iIs.checkMobiletphonenumber)ToastUtils.owMessa职(thds,手机号

42、码格式不正确J;remm:用户注册的信息使用正则表达式进行验证,只有验证通过才能够继续执行网络请求。发送请求的核心代码如下:userlnfb.putfrenliiameusetname)-userlnfb.putfsexsex):userlnfo.putfbirthdaybirthday);口serlnfo-piittlphone:.phonenumber):口serlnfo-piitidcar-d:.card);XID5m15=newXIDSf):UMrInfb.put(1lassword::1md5.getID5otrfpassword):口serlnfo-putetnaiT:.emajl

43、)Stringresulr=HnpUril.poFtRequ.es(MyComants.BASE_URL-LUserRegist3,userlnfo).tximO:注册模块访问服务器URL、请求参数、响应参数如下表所示:表4-1-3注册模块参数表请求链接请求参数响应参数用户注册/UserRegisterServletparams:realname=xxx,sex=xxx,birthday=xxx,telphone=xxx,idcard=xxx,password=xxx,email=xxx正常响应:success异常响应:failed登陆功能实现用户登陆模块界面设计如下用户宣吐Bit号:沾苗1人

44、虬怡匹号阳空码:锻祐人密匹苣浪|注册记住耳码-zCZ21a1图4-1-4用户登陆界面登陆模块包括登陆验证、记住密码、忘记密码以及提供注册接口功能。登陆验证用户填写账号密码,点击登陆按钮,与服务端数据进行用户认证。核心代码实现如下:userlnPcLputCWarcf:idcard):XIDimdS=new3DSQ:usernfrd7md?.etXID5ofStr(pisswo*rd);r-esult=llTtpUnl.postRequestMCoiitaiits.BASE_URL-:7LoginServlef;userlno)_trini0:user=GsonUtil.gftGsomQ.fir

45、oinJs&n.(re5ult?User.class):记住密码用户登陆时,如果勾选了记住密码选项,在重新登陆时不必再次输入密码,账户和密码自动填写,同理,取消记住密码将不会自动填写。核心代码实现如下:ifsCheck)savePwd=true:checkBox.setBackgroundRjesource(Rdrawable.iclogin_check_select);SharedPrefierenceUtils.putStringfmContext,巧dcard;et_usemame.getTextO.toString0);SharedPreferenceUtiIs.purStringfm

46、Conicxt,passvord;et_passvord.gctlextO.toSiring):dsesavePwd=false:checkBox.setBackgroundResource(ILdrawble.iclogn_checlc)SharedPrcferenceUtils.putString;mContext,巧deard:J;在用户忘记登录密码并且重新设置的情况下,记住密码应该是当前设置的新密码。核心代码实现如下:HastfvlafKString,Stringsuserlnfb-=newHastfviapcString,StringQuserInfo.putCliicari:idc

47、ar-d):userlufo.put-f1lelphone,tdphone):MD5masswoi-d):StringresultttpUtiLpostRequestMCcHitants.B-ASE_URL“ResetPasswordgervletA&erliifo);Intentintent=newIntentfmContext,LoginActiMty.class);intent.putxtra(i,passwri:,password);staitActivitr(intent):finisihQ;在登录Activity中,需要将获取的密码重新保存一下。Stringpwd=g:etIute

48、ntQ.getStrinstra(clpassword,p):SharedPreferenceUtils.putStringCmContext,passw-ord;pwd):忘记密码用户忘记了登录密码,可以通过点击”忘记密码”重新设置,密码重置成功,使用Intent将新密码发送给登陆Activity。HisfaW严String,Stringsuserlnfo=newHadNaptring,String?:userlnfc*.putflidcard:.idcard);userlnfo.putfidphons:;Itdphcmc);血md5=nwiLDSQ;userlnfb.putpassword

49、1:.mdS-getMDzSofStr(pasv-ord);Stringresult=HttpUtil.poFtRequest-fMyContiits.BASE_URL-LLRestPasswordSen-ltuserliifc*);Intentintent=newJntent-(m.Co-ntex.tnLoginActivity.class)zintnt.putExtralpassword:.,passwor-d):startArtivity0ntenf);登陆功能访问服务器的URL、请求参数、响应参数如下表所示表4-1-4登陆模块功能请求链接请求参数响应参数用户登陆/LoginServle

50、tparams:idcard=xxx,password=xxx正常响应:success异常响应:failed4.1.5预约挂号功能实现预约挂号模块是系统设计的核心部分,提供科室、医生以及选择预约时间功能。1)科室选择科室选择界面列出医院的科室分类信息,用户通过点击相应科室进行操作,界面设计如下图:男科IT呼吸科心肛科图4-1-5-1科室界面茁IIT,R_drawable.tiuxiR_drawble.pifiike,R_drwabk.kouqiang,R_drawal?le.yarLlenR_drable.xiiizang?E-drawable.tannibuni,R_draw.able.ga

51、nbing,R_drwable.shenjingnlR_drawable,chaiike,R_drawbl-e.erbihou,?_drawable.gLike,Eidrabk.gnngchangnIt-dfavable.naobing,R-drawable.weizhengjririg,K-dravrable.qianleixian-:fior(mti=0:itides.lengthiDepartmentdepartmeiit=newDepartmentftidesIi,images!i);iyDep-anxneutAdapt性丸:男史时芳王任11师评fir:*性此男余赢琦主任医怖评fir:

52、*性别:男图4-1-5-2医生界面该功能通过使用listview和adapter实现医生列表显示以及响应用户点击事件,与科室选择的功能实现类似,主要区别是在于医生数据是通过访问服务器获取。核心代码实现如下:department=intentgetStrinxttadepjrtnieiifHasliMapSiringnString-liaEhXlnp=nwvHisliMapQ;haskkhp.putdepaitmenf:.dep-artment);Stringresult=HnpUnlpostRquest(MContanis.BASE_URL-DoctorSmlethashAia.p).trim

53、Q;doctorList=jsonUtil.getG&onQ.fromJsanresult.newTvpeTokiListDoctnrQ_gelT、pe0):获取所有医生访问服务器的URL、请求参数、响应参数如下表所示:表4-1-5-1科室医生查询参数表请求链接请求参数响应参数科室医牛杳询/DoctorServletparams:department=xxx正常响应:“doc_id:xxx,doc_empID:xxx,doc_name:xxx,doc_grade:xxx,doc_sex:xxx,doc_department:xxx,doc_infb:xxx,doc_image_url:xxx,

54、doc_money:xxx,.异常响应:failed3)医生收藏点击医生选项进入该医生的详细界面,如下图所示:介璃:19花年宰业于原浙江医科大学狂学:t学位;1999音升対祈江大学眶厲第一医隅遍尿外料主任匡师*硕士生吕师;2004年起担任浙医一院舅科中衿主任,从事医疔、救学.科研工作近却年,毎年主刀完成泌尿外科亞男科各类手术3001,在国内外杂玉粽表论文孔金篇”承担WHO、省教委、卫19花年毕业于區淅江医科大学莪学士学位;的晋升为浙江大学附属第一医脏泌尿夕、科土任医师、碩士生导I帀:2叫斗年起担任浙医一吭豹科中心主汪从事医疔、教学、科研工柞近丸年”笹年主刀完戍泌尿挤科及男科各类手术強叩来I列(

55、在国内外亲志发卷论文壬0余篇*承扌日WHO、蛍教委、卫。图4-1-5-3收藏界面用户点击收藏按钮可以收藏该医生,再次点击可以取消收藏,核心代码如下:publicvoidonChedcedCliangedtCompoundButtonbuTtonView,booleanisCliecked)if(isCtiGckad)savejdoctor.setBackgrcmcidltescuirceR.drawable.ic_saved):elsesave-_donor.setBackgroundItjes&urc&(R_drawabk.ic_ii-o_saved);haiiMap.putiLuJ-d1;

56、user.gdl-dOlwliklap-.putdj-ddcror.getlo_id0-J;IwhMap.putCselected,isChecked-J:Stringresult=HttpUriLposiKequemts.BASL_VKL-LikedQrUnLikwiSenlec.收藏医生访问服务器的URL、请求参数、响应参数如下表所示表4-1-5-2收藏模块参数表请求链接请求参数响应参数医生收藏/LikedOrUnLikedServletparams:u_id=xxx,d_id=xxx,selected=xxx取消收藏:unlikedtrue收藏:likedtrue4)浏览医生简介和排诊信

57、息用户可以点击“简介”和“挂号”按钮实现界面切换,如下图所示主廿收元弓1号9:052号9:15T*2015/5/13剩亲是源岀币I仝m-诟-F2015/5/11剩舍虽源:22015/5/12剩議号源:5主页尔绍:1978毕业于原浙江医科大学務学士学位:19殆晋升为新江大学附届第一医际泌尿夕、科主13医师、顽士主号I帀:2004年起担任新医一阮男科中心主5*从事医疔、数学、科硏工作酝?0年.每年主71完龍泌尿外科忌男科昔类手术刁00余例.存国内外杂击岌志论文却余禽,卑担册IQ省封垂、卫197呂年卒业于瘟新江医科大学莪学尢学位;1999昔升为浙江大学銅属第一医陆泌歸蚌科主忏医师、证士生导师;200

58、4年起担任新医一隣男料中补主任从事匡疗、教畝科研工柞近20年.每年主刀完成泌尿外科及列科各类手术孑沁余例.在匡1内券祭志发舂论宜日0忌篇承担WH6省教委、型简介-性趾主页简介图4-1-5-4简介和挂号界面浏览简介和挂号信息功能类似,其中,排诊信息以网格形式显示,可以动态展开和收缩,节省屏幕空间,利用ExpandableListView和继承于BaseExpandableListAdapter的自定义adapter实现。获取服务器端的排诊信息核心代码如下:HatiMaptiashMap=newHitiMap0;ha曲Map-WUiiT;docioi.getIXK_iiO-hisbMap.putC

59、p-Selected:String.valueCXfilse);Stringresult=HttpUtilp&stEtqiiest(MyContants.B-ASEURL11FiiiiHaoZiSerxrlet1:;hashMap):1i肛=GsonUti1.getGsonO一:fromJscwiftsuli:卫ewTypeTolcenListHaoZiQ*.geiTpeQ):从服务器获取了所有的排诊记录,但是需要将同一天的号源归纳在一起,便于患者浏览和选择,使用TreeSet实现该需求。设计如下:SettreeSet=newTreeSet0;for(Ha-oZiha&Zi:list)5)订单

60、提交用户点击某个号源,跳转至订单提交Activity。界面设计如下:主页就谗时闾:2015/5/12,9:00iMlie:1s谗查郭10元就i參人:lihui联系手机付左式:,图4-1-5-5订单界面遍客提不您选4?Ti20t5/5/12,9100恃证:3411241993101844121滲.22015/5/12剩余号源;51号2号吕号9:009:059:10厝5号在选择支付方式时,如果用户选择了窗口支付,会直接跳转至订单详情界面;如果用户选择了”在线支付”,将跳转至支付界面,如下图:图4-1-5-6支付界面用户点击“确认支付”按钮,支付成功,跳转至订单详情界面。图

温馨提示

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

评论

0/150

提交评论