基于Android的中医信息处理系统毕业设计Word文档格式.docx
《基于Android的中医信息处理系统毕业设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于Android的中医信息处理系统毕业设计Word文档格式.docx(99页珍藏版)》请在冰豆网上搜索。
Accordingtotheresearchoncurrentmedicalsystem,ChineseMedicineinformationprocessingsystemdevelopedfortheuserterminalinAndroidplatform,andbasedontheideaofmodulardesign,thesystemisdividedintotwosubsystems--Androidclientsystemandserverterminalsystem.Themainworkisreflectedinthefollowingaspects:
1.Describesindetailthesystemregardingthefunctionoftherelatedtechnology,designideaandthesystemarchitecture.
2.AdetailedanalysisoftheAndroidsystemusedatpresentthemostpopularAndroiddevelopmenttechnology,throughthebackgrounddataexchangebetweentheAndroidterminalandthecomputersystem,thusrealizingthefunctionsofuserregistration,testingphysicalconditions,lookingatthehistoricalrecord,seeingTipsandsoon.
3.AnalysisoftheserverbyusingWebdevelopmenttechnologytorealizethefunctionsofChinesedoctorsregistration,login,on-linediagnosis,viewfeedbackandsoon.Onhowtorealizethesystemfunctionelaborate,givesthedetaileddesignofthedatabaseandthecorecode,testcaseofthesystem.
Keywords:
MobileInternet,Android,ChineseMedicine,SoftwareEngineering
绪论
当前中医理论现状与发展趋势
中医药现代化是国家中长期科技发展规划中具有战略意义的研究课题,其目标之一就是要逐步建立现代化中医药科学技术研究方法体系,包括构建现代中医药辨证论治创新体系和临床常用智能化、信息化诊疗技术。
其中的一个重要方面就是现代中医诊断的信息化,中医信息处理系统的构建适应医学的发展趋势。
随着网络的普及、网速的提升、远程教育的开展和电脑的家庭化,信息技术的飞速发展,预计2-3年的时间,远程医疗将是病人的首选,中医信息处理系统将将占据医学资源的重要的一席之地。
目前,在铁路、电力、勘测、教育、物流等很多领域,都已经出现了专用的行业掌上电脑,但是在中医临床与研究领域,至今还没见到相关报道。
可以预见,随着信息技术的发展和中医行业的与时俱进,中医诊疗信息系统将朝着智能化、小型化、网络化、海量存储的方向迈进,中医药这门古老的学科一定能焕发出新的夺目光芒,为保护全人类的身体健康、提高人类的生存质量作出更大贡献。
研究本课题的意义
随着技术的发展,中医信息化的趋势越来越明显。
然而计算机技术在中医领域的应用还不够深入和广泛,现有的各种中医诊疗信息系统还存在种种局限,主要表现在如下几个方面:
1.成本较高,难以普及。
由于现有的各种中医诊疗信息系统大多基于X86体系结构的PC兼容机,若要推广应用,须为每位就诊用户配备PC台式机或笔记本电脑,成本较高,不利于成果的普及和推广,而且大多数功能不是必需的,造成较大浪费。
2.操作不便。
台式机或笔记本电脑一般依靠键盘实现文字输入,没有手写输入功能,且操作时须借助桌椅,难以实现站立或行走时操作,这对于用户而言很不方便。
由于以上不足,广大寻求中医理疗养生的用户迫切需要一种体积小、容量大、耗电省、成本低、操作方便的信息处理工具来弥补这些不足。
而Android平台上的程序以其小巧的体型、强劲的性能,无疑是解决上述问题的首选方案。
信息处理平台能最大程度上的收集诊断信息,平台能将所有数据存储到中心数据库,单凭个人或单个机构的力量是难以完成的,凡参与者都有采集数据的义务和免费享受资源的权利。
因此,需要有一个平台提供资源汇集交流的场所,协调各中医药院校、研究所和其他有关机构,及时有效的进行数据网络传输。
平台可以改善医患关系。
用户可以在Android手机客户端注册后使用系统,根据需要自由的选择实名认证的医师,在跟踪采集到中医信息提交后,可以获得医师给出的诊断结果、建议措施和药物处方。
从而实现了利用最少的投入与最便捷的方式获得与去医院同样的的资源,从一定意义上说有利于缓解医疗资源紧张问题。
中医诊断有无损、便廉、有效等优势,可大幅减少个人采集的误差,而且病人的电子病例可以很好的保存和利用。
本文所做的工作
1.查阅了相关书籍及资料,深入了解Java语法、Web编程、Android开发、数据库Mysql以及jQuery等技术。
为开发该系统做了技术性的准备。
2.对中医信息处理系统进行了需求分析和系统分析,分析了面向对象的系统开发方法,完成了基于Android的中医信息处理系统的体系结构设计。
3.根据前面对中医信息处理系统的分析和体系结构设计,以及对系统开发技术和工具的研究完成初期准备,进行了系统界面前台设计及一部分代码的编写。
1)应用Mysql5.0作为数据库,基于Windows平台、Android平台和InternetExplore6.0初步实现了中医信息处理系统实例。
2)中期进行了业务功能的修改和完善,并完成了项目的测试。
对中医信息处理系统的各个功能模块进行介绍,并以截图的方式,展现给用户,以便用户能很好的了解本系统。
3)最后根据所做系统及过程中收集的资料,完成毕业论文。
实现技术
1
2
Java技术的特点
Java的起源
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)的总称。
它最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。
由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。
就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,以“Java”的名称正式发布。
Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
Java语言的优势
1.简单
与C++等语言相比较,语法上Java是简单的。
Java提供了垃圾回收机制。
以往C++的开发中,最容易出错误的地方便是内存管理,申请的内存用完以后必须释放,否则可使用的内存资源越来越少,直至耗尽系统资源而造成死机。
而Java系统中,你可以任意申请内存,Java系统会在适当的时候自动释放无用的内存资源。
这个机制叫做“垃圾回收”,节约了许多调试错误的时间。
2.跨平台
“一次编写,随处运行”,Java系统可以运行在不同的操作系统和硬件上。
随着Linux的持续增长以及MacOSX完全支持Java技术,跨平台的特性变得越来越有分量。
由于Java跨平台,JavaAPI自然也是平台统一的。
对程序员而言,没有比统一的API函数能够让他们更欣慰的了。
我们拿JavaAPI与C++的类库相比便可以知道它的可贵之处。
3.在学术界获得了强有力的支持
由于免费、跨平台、Java语言本身技术先进,在高校中,Java已经成为许多学科研究、课程和计算的首选语言,用Java做上机作业,一般都是鼓励的。
据我所知,北大、清华许多院系的研究生入学考试都可以用Java语言答题。
实际上,用Java来完成这些工作,大多数情况下要比用C或其他语言简洁得多,可以把注意力集中在算法等核心部分,从而获得更高分数。
4.企业应用的成熟平台
Java技术的企业应用旨在提升企业竞争力,所以Java技术受到了企业的欣赏,市场份额是同类技术中最大的。
同时,Java开放标准,所以供应商众多。
市面上有许多的应用服务器、工具与构件可以选择,从高端的BEAWebLogic、IBMWebSphere等商业软件,到Tomcat、JBoss等开源的免费工具,一应俱全。
5.开源组织或者非盈利机构的支持
Java世界中,开源组织与非盈利机构发挥到了极致,许多出色的工具都出自它们之手。
比如JUnit、Cactus、Tomcat、Struts、JBoss、Eclipse、ANT、Xerces、Hibernate、Axis、AspectJ等等,许多工具还会出现在我们的咖啡馆中,扮演重要的角色。
6.无线应用
这是Java技术目前最活跃的另一个领域,旨在提供更多、更方便的个性化服务的Java手机应用。
未来几年内,势必将出现移动通讯运营商和移动设备应用软件的巨大商机和激烈竞争,并且该趋势很可能与电子政务、电子商务等其他发展相互影响。
Java在手机市场的专有性和Java本身的开放性和标准性,使得越来越多的企业加入了Java阵营。
7.开放的Java社团
JCP(JavaCommunityProcess)是一个让Java出名的功臣。
JCP创造了一个开放型论坛,让同好在此交换意见,探索、定义新的平台,群策群力。
Java欢迎竞争,因为只有这样才能最大限度地提高领域内的技术,这点与对手微软.Net技术大相径庭。
在Java的舞台上有很多演员,任何人都可以参与到JCP的过程中去,挑战自己的影响力。
从而,你可以发现Java世界中新的名词层出不穷,远远走在规范之前。
而在微软.Net技术的舞台上,你只能看到一个演员,那就是微软自己。
8.免费
Sun在Java上的收益不大,远远比不过垄断Java应用服务器技术的IBM和BEA公司,似乎有替别人做嫁衣之嫌。
对此,Sun董事长、总裁兼首席执行官ScottMcNealy是这样解释的:
“Sun并没有用Java赚钱,这就像使用英语不用上税一样,Sun并不通过Java本身来盈利,而是把Java应用到了业务中。
”
Android技术概论
Android平台
1.系统架构
Android的系统架构和其它操作系统一样,采用了分层的架构。
android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。
Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。
在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:
python、lua、tcl、php等等),还有其他诸如:
Qt(qtforandroid)、Mono(monoforandroid)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。
另外,谷歌还在2009年特别发布了针对初学者的AndroidSimple语言,该语言类似Basic语言。
而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap等等都已经支持Android开发。
而在Android系统底层方面,Android使用C/C++作为开发语言。
2.应用程序(部分)
早期的Android应用程序开发,通常通过AndroidSDK(Android软件开发包)下使用Java作为编程语言来开发应用程序,但通过不同的软件开发包,则使用的编程语言也不同。
例如开发者可以通过AndroidNDK(AndroidNative开发包)使用C语言或者C++语言来作为编程语言开发应用程序。
同时谷歌还推出了适合初学者编程使用的Simple语言,该语言类似微软公司的VisualBasic语言。
此外,谷歌公司还推出了GoogleAppInventor开发工具,该开发工具可以快速地构建应用程序,方便新手开发者。
3.Java开发方面
Android支持使用Java作为编程语言来开发应用程序,而Android的Java开发方面从接口到功能,都有层出不穷的变化。
考虑到Java虚拟机的效率和资源占用,谷歌重新设计了Android的Java,以便能提高效率和减少资源占用,因而与J2ME等不同。
Android结构其中Activity等同于J2ME的MIDlet,一个Activity类(Class)负责创建视窗(Windows),一个活动中的Activity就是在foreground(前景)模式,背景运行的程序叫做Service。
两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行效果。
如果运行中的Activity全部画面被其他Activity取代时,该Activity便被停止(Stopped),甚至被系统清除(Kill)。
View等同于J2ME的Displayable,程序人员可以通过View类与“XMLlayout”档将UI放置在视窗上,Android1.5的版本可以利用View打造出所谓的Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的AndroidHero手机即含有大量的widget。
至于ViewGroup是各种layout的基础抽象类(abstractclass),ViewGroup之内还可以有ViewGroup。
View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity中,要通过findViewById()来从XML中取得View,Android的View类的显示很大程度上是从XML中读取的。
View与事件(event)息息相关,两者之间通过Listener结合在一起,每一个View都可以注册一个eventlistener,例如:
当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。
另外还有BitMap等同于J2ME的Image。
4.C/C++开发方面
早期的Android开发只支持Java作为编程语言开发应用程序,因而使得其他语言开发者只能望而却步。
2010年4月,谷歌正式对开发者发布了AndroidNDK,NDK允许开发者使用C/C++作为编程语言来为Android开发应用程序,初版的NDK使得开发者看到了C/C++在Android开发中的希望。
但是,当前版本的NDK在功能上还有很多局限性:
NDK并没有提供对应用程序生命周期的维护;
NDK也不提供对Android系统中大量系统事件的支持;
对于作为应用程序交互接口的UIAPI,当前版本的NDK中也没有提供。
但是相对于初版的NDK,现在的NDK已经进行了许多重大的功能改进。
由此可见,NDK仍然需要完善和发展,相信未来随着NDK的发展,NDK可以做得更多更好。
当前Android流行原因
Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。
2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。
2011年11月谷歌对AndroidMarket上的应用程序进行了大清理,据统计,此次共清理了约18万个应用程序,包括流氓应用、病毒软件、侵犯版权、低质量和滥竽充数的各种程序,谷歌将这一系列应用删除后,使得Android市场中的优质应用程序总数到31.5万。
2011年11月20日,谷歌宣布启动了AndroidMarket应用审核、取缔、清扫行为,定期对电子市场上存在的不合格、低质量、违法恶意的应用程序进行清理。
axis2技术简介
Axis2是下一代ApacheAxis。
Axis2虽然由Axis1.x处理程序模型提供支持,但它具有更强的灵活性并可扩展到新的体系结构。
Axis2基于新的体系结构进行了全新编写,而且没有采用Axis1.x的常用代码。
支持开发Axis2的动力是探寻模块化更强、灵活性更高和更有效的体系结构,这种体系结构可以很容易地插入到其他相关Web服务标准和协议(如WS-Security、WS-ReliableMessaging等)的实现中。
ApacheAxis2是Axis的后续版本,是新一代的SOAP引擎。
其主要特点有:
1.采用名为AXIOM(AXIsObjectModel)的新核心XML处理模型,利用新的XML解析器提供的灵活性按需构造对象模型。
2.支持不同的消息交换模式。
目前Axis2支持三种模式:
In-Only、Robust-In和In-Out。
In-Only消息交换模式只有SOAP请求,而不需要应答;
Robust-In消息交换模式发送SOAP请求,只有在出错的情况下才返回应答;
In-Out消息交换模式总是存在SOAP请求和应答。
3.提供阻塞和非阻塞客户端API。
4.支持内置的Web服务寻址(WS-Addressing)。
5.灵活的数据绑定,可以选择直接使用AXIOM,使用与原来的Axis相似的简单数据绑定方,或使用XMLBeans、JiBX或JAXB2.0等专用数据绑定框架。
6.新的部署模型,支持热部署。
7.支持HTTP,SMTP,JMS,TCP传输协议。
8.支持REST(RepresentationalStateTransfer)。
2.2.4Android组件介绍
Android开发四大组件分别是:
活动(Activity):
用于表现功能。
服务(Service):
后台运行服务,不提供界面呈现。
广播接收器(BroadcastReceiver):
用于接收广播。
内容提供商(ContentProvider):
支持在多个应用中存储和读取数据,相当于数据库。
1.Activity
Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity可以算是开发者遇到的最频繁,也是Android当中最基本的模块之一。
在Android的程序当中,Activity一般代表手机屏幕的一屏。
如果把手机比作一个浏览器,那么Activity就相当于一个网页。
在Activity当中可以添加一些Button、Checkbox等控件。
可以看到Activity概念和网页的概念相当类似。
一般一个Android应用是由多个Activity组成的。
这多个Activity之间可以进行相互跳转,例如,按下一个Button按钮后,可能会跳转到其他的Activity。
和网页跳转稍微有些不一样的是,Activity之间的跳转有可能返回值,例如,从ActivityA跳转到ActivityB,那么当ActivityB运行结束的时候,有可能会给ActivityA一个返回值。
这样做在很多时候是相当方便的。
当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。
用户可以通过回退操作返回到以前打开过的屏幕。
我们可以选择性的移除一些没有必要保留的屏幕,应为Android会把每个应用的开始到当前的每个屏幕保存在堆栈中。
2.Service
Service是android系统中的一种组件,它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。
Service是没有界面的长生命周期的代码。
Service是一种程序,它可以运行很长时间,但是它却没有用户界面。
这么说有点枯燥,来看个例子。
打开一个音乐播放器的程序,这个时候若想上网了,那么,我们打开Android浏览器,这个时候虽然我们已经进入了浏览器这个程序,但是,歌曲播放并没有停止,而是在后台继续一首接着一首的播放。
其实这个播放就是由播放音乐的Service进行控制。
当然这个播放音乐的Service也可以停止,例如,当播放列表里边的歌曲都结束