基于ios的医生小助手app的设计与开发大学论文.docx
《基于ios的医生小助手app的设计与开发大学论文.docx》由会员分享,可在线阅读,更多相关《基于ios的医生小助手app的设计与开发大学论文.docx(26页珍藏版)》请在冰豆网上搜索。
基于ios的医生小助手app的设计与开发大学论文
题目基于iOS的医生小助手APP的设计与开发
指导老师******
专业班级
姓名***
学号***
年月*日
摘要:
传统的临床护理的模式已经没有办法满足日渐增加的护理要求,一方面工作流程较为复杂,另外各类文档资料庞杂,而通过移动端进行工作流程和资料维护能有效提高工作效率。
本文介绍了基于iOS的医生小助手APP的开发过程,首先论述了构建移动护理的背景意义以及技术支持介绍,然后对系统进行了需求分析,描述了系统的几大构成部分以及划分了主要的功能模块,包括添加病人模块、添加诊断模块、检查单模块、处方单模块、护理单模块,接着,对各功能模块进行了设计与实现,最后完成了系统测试。
本系统主要使用了面向对象的Object-c语言,APP端需要通过向数据接口层的API服务端发送HTTP请求,从而调用业务逻辑层的API来实现业务功能。
本系统构建了一个灵活的、易用的、轻便的移动APP系统,可以优化医生的工作,减轻医生工作负担,让医生可以随时随地进行诊治;并且让护理、治疗的管理更加高效简洁、一目了然。
关键词:
iOS;Xcode;医生小助手;移动;HTTP请求
(五个,需要从摘要中找出)
1绪论
随着科技的发展,各类市场上的智能手机的普及,APP也被越来越多的人使用起来,APP能使人们的生活更加便捷、更加高效。
无线网络的覆盖率也日渐增加。
而且目前我国的临床护理、诊治行业越来越重视信息化建设,这个行业也非常适合和需要移动设备和移动系统的支持和使用。
传统的方式的复杂与繁琐已经无法满足现在大量病人的需要与需求。
同时移动APP系统的灵活、便捷等等特性,也被大家接受和青睐。
1.1背景意义
我国的医疗行业总的来说还处于一个比较初级的阶段。
因为行业内大部分的高科技、高技术的设备是由国外生产并且掌握技术。
中国的人口基数过大、医疗人员数量不足、技术相对国外来说并不成熟、缺乏专业人才对就医流程进行规范和优化等等的原因,造成了我国整个医疗系统的工作非常繁琐与复杂。
为了提高就医的效率、质量。
我国的医院开始实施信息化建设。
到现在来说,大部分的医院已经有了比较完善的信息化系统。
将许多的业务流程与检验数据、检验报告等等联系起来。
1.2发展趋势
对于临床医学这个行业来说,机动性和准确性是最重要的一点,所以将移动APP开发引入医学行业可以解决下列问题:
(1)医生、护士只要随身携带一台移动设备就可以进行随时随地的工作,不用携带大量的资料、病例夹。
一个角度来说,减少了医生、护士的负重。
另外一个方面来说,加快了医生、护士的开方、诊断录入的速度。
(2)优化了医生、护士的工作流程、可以避免一些重复的工作、可以清晰的看到这位病人之前的病史、并且可以查阅之前的开方治疗记录。
(3)对于护士来说,优化了工作的流程。
让需要做的工作一目了然。
(4)做到了无纸化作业,使用APP内的电子文字代替。
不会丢失、混乱,而且方便查找与搜索。
1.3系统开发目标
系统采用View/Models体系结构,利用Object-C和Xcode进行开发的,具有简单、易用性、用户界面友好等特点。
系统开发的目标主要是:
(1)界面设计简洁、友好、美观大方;
(2)操作简单、快捷方便;
(3)提升护理、开发管理水平;
(4)保障医疗质量,提高工作效率;
2系统开发技术介绍
2.1iOS系统
iOS是由美国苹果开发的移动设备操作系统,适用于iPhone,ipad,ipod-touch等苹果公司生产的移动设备目前最高的版本是9.3.1以系统稳定,UI精美,系统操作流畅而闻名于全球,是全世界优秀操作系统之一。
2.1.1iOS系统概述
iOS是由苹果公司为iPhone、iPodTouch以及iPad使用而开发的操作系统。
与苹果公司MacOSX操作系统一样,都是基于Unix操作系统的。
原本这个系统名为iPhone0S,直到2010年6月7日苹果电脑全球研发者大会(APPleWorldwide.DevelopersConference,简称WWDC)大会上宣布改名为iOS。
iOS的系统架构分为4个层次:
核也操作系统层(theCoreOSlayer),核心服务层(theCoreServiceslayer),媒体层(theMedialayer),可轻触层(theCocoaTouchlayer),系统操作占用大概240MB的存储器空间。
与Android系统不同,iOS是封闭的,无法在苹果以外的设备上使用iOS。
总体来说,iOS具有从下4点特质:
(1)高度的硬件整合性
相比于Windows和Android系统,iOS对于硬件的整合度可以用苛刻来形容。
iOS只能运行在苹果公司自己的所对应的硬件设备上,严格禁止硬件分化,绝对不随便做出适应性和兼容性的调整,这样做在保证苹果公司自己硬件产品商业价值的同时,也保证了iOS与硬件的完美适配度,做到最大程度的优化和匹配。
(2)华丽的UI和良好用户体验
iOS的界面完全可称之为精美,苹果的圆角图标设计,早期的拟物化图标设计,在当时很快就成为行业的风向标。
到了今年,苹果大刀阔斧的进行界面改革,提出了扁平化设计,同样,很快又成为了行业内的标杆,无数厂家竞相模仿。
而由于iOS的深度优化,用户在使用iOS的时候很少会感觉到顿卡感,无论什么操作都是极为流畅,大大的増强了用户的体验。
(3)系统稳定性及安全性
由于硬件整合度高,所以系统的稳定性相对也就高。
iOS系统在运行过程中,很少会出现死机,白屏,崩溃,报错等现象,系统无故障运行时间非常长。
同时苹果对于数据安全的要求非常高,所有推送信息必须经过苹果服务器,而且苹果公司对于用户的隐私保护要求非常严格,所以iOS也是一个安全性非常高的操作系统。
(4)丰富的应用
在APPStore中,有35万以上的海量应用供用户使用,当然,其中部分是需要付费的。
但是由此可以看出,用户始终都可在iOS上发现新的惊喜和新的未知,这也是iOS,而APPStore同时也为开发者提供了一个发布和销售软件的理想之地,同时也为用户过滤了恶意软件和垃圾软件,也是iOS的魅力所在。
2.1.2iOSSDK简介
2007年10月17日,史蒂夫乔布斯在一封张贴于苹果公司网页上的公开信上宣布软件开发工具包(SDK),并于2008年3月6日发布,允许开发人员开发iPhone和iPodtouch的应用程序,并对其进行测试,名为"iPhone手机模拟器",且需要拥有英特尔处理器且运行MacOSXLeopard系统的Mac机才能使用,截止到现在,最新的版本已经到了SDK9.3
iPhoneSDK包含了用于开发iPhone和iPodTouch应用程序的一整套开发工具,主要包括:
(1)Xcode
该集成开发环境(IDE)用于管理、编辑与调试项目。
Xcode中的IDE提供了大量的工具与功能,能极大减轻开发工作量,特别是其中一个功能叫做CodeCompletion(代码补全),它会显示一个弹出列表,里面有可用的类与成员(如方法、属性等)。
(2)iPhoneSimulator
这是一个软件模拟器,用于在Mac上模拟使用iPhone,它在Xcode运行(或是调试)应用程序时会自动启动。
Xcode会自动将应用程序安装到iPhoneSimulator上进行模拟真机运行环境。
(3)InterfaceBuilder
提供了一个可视化编辑器,用于设计iPhone应用程序的界面。
可以在InterfaceBuilder中将视图拖到窗口上并将各种视图连接到变量和动作上,这样它们就能以编程的方式与代码交互。
(4)Instruments
这是一个分析工具,可实时优化应用程序,用于动态跟踪与分析MacOSX和iPhone应用程序的性能,包括对应用程序进行压力测试,跟踪应用程序的内存泄漏问题,更深入地理解应用程序的执行行为,及跟踪应用程序中难重现的问题等[3]。
2.2AFNetworking框架
在本项目中使用的框架称为AFNetworking框架,AFNetworking是一个为iOS和MacOSX制作的令人愉快的网络库,它建立在URL装载系统框架的顶层,内置在Cocoa里,扩展了强有力的高级网络抽象。
它的模块架构被良好的设计,拥有丰富的功能。
支持HTTP请求和基于REST的网络服务(包括GET、POST、PUT、DELETE等)
2.2.1HTTP请求
AFHTTPRequestOperationManager封装的共同模式与web应用程序通过HTTP通信,包括创建请求,响应序列化,网络可达性监控、运营管理和安全,以及请求。
(1)HTTP请求之GET请求,示例代码如下。
AFHTTPRequestOperationManager*manager=AFHTTPRequestOperationManagermanager];
[managerGET:
@"[
parameters:
nilsuccess:
^(AFHTTPRequestOperation*operation,idresponseObject)
{
NSLog(@"JSON:
%@",responseObject);
}
failure:
^(AFHTTPRequestOperation*operation,NSError*error)
{
NSLog(@"Error:
%@",error);
}];
(2)HTTP请求之POST请求,示例代码如下。
AFHTTPRequestOperationManager*manager=[AFHTTPRequestOperationManagermanager];
NSDictionary*parameters=@{@"foo":
@"bar"};
[managerPOST:
@"parameters:
parameterssuccess:
^(AFHTTPRequestOperation*operation,idresponseObject)
{
NSLog(@"JSON:
%@",responseObject);
}
failure:
^(AFHTTPRequestOperation*operation,NSError*error)
{
NSLog(@"Error:
%@",error);
}];
2.2.2基于REST的网络服务
(范文略)
2.3Json序列化与反序列化
在医生小助手中,还用到了一些其他的技术,例如Json、基于AFNetworking框架的图片上传、网络图片解析等。
在医生小助手中,移动端的APP数据接口层传输数据统一使用的是Json格式,因此涉及到一些Json序列化与反序列化的技术。
Json是一种数据传输格式。
例如在SOA架构中,我们以XML作为数据传输格式,但是在其他一整场景中,可能有更加合适的传输格式,Json就是其中一种。
Json格式的数据结构非常简单,其解析的难度要远远小于XML。
实际上,Json格式就是系列键值对的集合,由于其简单性,甚至可以直接阅读。
序列化是将变量转化为可保存或可传输的字符串的过程。
无论是哪种平台或者开发语言,在以Json为格式传输数据时,都必须先序列化数据或者数据集。
Json序列化的过程实际上就是把数据和数据集变为键值对的字符串,然后将这个字符串返回给请求者。
而反序列化正好巧反,请求者在获得这个字符后,将其解析,并转化成数据或者数据集便使用。
2.4系统开发与运行环境设计
2.4.1软件环境
(1)操作系统:
MacOSXEICapitan10.11.1或更高版本
(2)开发工具:
Xcode7.3
2.4.2运行环境
(1)操作系统:
iOS7.0或更高版本
……
(范文略)
3系统需求分析
为了改善看病难,医患关系紧张的情况,提高病人看病的效率,我们开发了主要给医生护士使用的专业APP。
这款软件是让医生和病人更容易沟通了解,提高病人的看病效率,让医生护士真正的走进病人,服务病人,成为一款类似家庭医院的让医护人员使用的的专业APP。
软件分为两个端:
移动端,PC端。
而PC端又分为总管控和医院后台,这让平台更加方便快捷分类的管理医护人员,具体的管理好对移动端的数据分配及相关的数据统计。
移动端的两个软件“医生小助手”和“苏姗护理”分别给医生和护士使用,让医护人员携带着移动设备就能随时随地的办公,方便快捷的沟通对病情进行诊断,开方治疗,让病人在家就能受到医护人员的治疗。
以下将对医生端“医生小助手”进行具体的功能及结构的分析。
3.1系统功能需求分析
由需求分析可知,医生小助手软件主要用户是医生,供医生录入病人基本资料,医生诊断录入,及相应的开单,跟踪治疗流程及病人的信息管理等等。
由此可知,软件包括用户信息板块、病人信息板块、医生开单板块、治疗流程板块、账户板块等五个功能模块。
其中用户信息板块包括对登录注册医生的信息的录入登录软件操作软件,基本信息的完善与修改;病人信息板块包括对病人的基本信息的录入已查看已存在的病人的病历;医生开单板块包括开检查化验单、处方单和护理单,所开单子将传给后台工作人员,进行下一步护士上门服务的流程。
治疗流程板块是对医生所治疗的病人的资料进度进行跟踪,查看已经反馈;医生提现返现板块包括返现的记录,现有的账户余额(主要是诊费),对账户余额进行提现。
3.2功能描述和用例分析
3.2.1功能描述
医生小助手的主要使用人群是医生,医生只要随身携带一台移动设备就可以进行随时随地的工作。
首先医生需要开通一个账户,后台审核通过成为平台的医生。
当有病人看病的情况下,对病人的基本信息及诊断的病情录入设备,保存到PC管理端。
在这基础上,对病情需要进行相应的开单,根据医生端的开单PC端分配病人给护士,护士上门服务,医生根据护士反馈的信息再次开单,病情严重的转到相应的医院进行后需要的治疗。
医生不断根据跟踪治疗流程,对护士反馈分析诊断知道病情诊治完成,医生可结束治疗。
医生端账户上会有相应的诊费的返现,对这些返现的金额可以提现到支付宝或者银行卡。
3.2.2系统用例图
医生小助手的总体结构,如下图所示:
软件包括用户信息板块、病人信息板块、医生开单板块、治疗流程板块、账户板块等五个功能模块。
该系统用例图如图3.2所示。
图3.2医生小助手用例图
4系统设计
本章详细描述了iOSAPP“医生小助手”,数据接口层API和数据同步层的设计与实现。
4.1概要设计
本系统使用了AFNetworking框架主要用于数据访问,通过一个AFHTTPRequestOperation实例对象,在APP端和服务器之间传递数据。
iOSAPP“医生小助手”是医生用来对病人信息进行录入,对病人诊断后进行开方的端口,向医生提供了业务操作最直接的交互界面,几乎所有操作都在装有“医生小助手”的iOS设备上完成。
数据交互部分主要是通过发生Http请求调用API接口,并将返回的Json字符串反序列化显示在界面,设备首页如下图4-1所示。
图4.1首页
根据3.1节的系统功能分析可知“医生小助手”包括用户信息板块、病人信息板块、医生开单板块、治疗流程板块、账户板块等五个功能模块,其功能结构图如图4.2所示。
图4.2医生小助手功能结构图
4.2详细设计
4.2.1添加病人模块设计
对于每位第一次来医院的新的病人而言,首先需要对病人的信息进行一个录入操作,方便后续管理与查阅,减轻医生后续操作。
它的流程图如图4.3所示。
图4.3添加病人信息
4.2.2添加诊断模块设计
在添加录入病人信息之后,需要对病人添加医生的诊断信息,用于表示病人的症状和所属的病人病症属于的信息。
它的流程图如图4.4所示。
图4.4添加病人诊断
4.2.3检查单模块设计
在添加完病人诊断之后,需要对病人的病情有一个更为全面的了解,需要对病人做一系列的检查。
它的流程图如图4.5所示。
图4.5添加检查单
4.2.4处方单模块设计
在经过详细的检查与化验之后,对病人的病情有了一个详细的了解,之后就需要针对病人的病情进行开处方药操作。
它的流程图如图4.6所示。
图4.6添加处方单
4.2.5护理单模块设计
图4.7添加护理单
5系统实现
在APP的表现层本身并没有进行任何的业务逻辑的功能实现,所以的工作功能都是调用API然后获取Json字符串反序列化得到的结果集,并将结果显示在界面上。
5.1添加病人模块实现
在添加病人模块中,我们需要录入病人的姓名、联系电话、性别、出生日期、年龄、家庭住址、家庭详细地址、所属医院的信息。
年龄是按照出生日期的选择,通过选择的日期到今天的日期来计算得出的。
页面及主要实现代码如图5.1所示。
图5.1添加病人
-(void)initView
{//创建左视图
for(inti=0;i<5;i++)
{
UIView*view=[[UIViewalloc]initWithFrame:
CGRectMake(0,0,30,30)];
UIImageView*bg=[[UIImageViewalloc]initWithFrame:
CGRectMake(0,5,20,20)];
NSString*bgImageName=[_leftViewImageArrayobjectAtIndex:
i];
bg.image=[UIImageimageNamed:
bgImageName];
[viewaddSubview:
bg];
[_leftViewArrayaddObject:
view];
}
//创建textView
for(inti=0;i<5;i++)
{
_textFiled=[[UITextFieldalloc]initWithFrame:
CGRectMake(35,10+i*50,G_SCREEN_WIDTH-70,50)];
UILabel*line=[[UILabelalloc]initWithFrame:
CGRectMake(35,60+i*50,G_SCREEN_WIDTH-70,1)];
line.backgroundColor=RGBCOLOR(221,221,221);
[_scrollViewaddSubview:
line];
NSString*placeholderStr=[_placeholderArrayobjectAtIndex:
i];
_textFiled.tag=i+100;
_textFiled.text=placeholderStr;
_textFiled.leftView=[_leftViewArrayobjectAtIndex:
i];
_textFiled.leftViewMode=UITextFieldViewModeAlways;
[_scrollViewaddSubview:
_textFiled];
}
}
5.2添加诊断模块实现
在添加病人诊断模块中,我们可以看到之前所填写的病人姓名、性别、电话、详细住址等信息,对病人的情况有一定的了解之后,可以在下方对病人的病况有一个详细的描述,为病人的检查开单做准备。
在这个页面我使用了iOS系统自带的类UITableViewCell,使用这个类能够相当方便的生成列表结构,并自动进行内存缓存处理。
页面及主要实现代码如图5.2所示。
图5.2添加病人诊断信息
-(UITableViewCell*)tableView:
(UITableView*)tableViewcellForRowAtIndexPath:
(NSIndexPath*)indexPath
{
NSString*identifer=[NSStringstringWithFormat:
@"diagnoseCell%ld",(long)indexPath.section];
tableView.separatorStyle=UITableViewCellSeparatorStyleNone;
UITableViewCell*cell=[tableViewdequeueReusableCellWithIdentifier:
identifer];
if(!
cell)
{
cell=[[UITableViewCellalloc]initWithStyle:
UITableViewCellStyleDefaultreuseIdentifier:
identifer];
cell.selectionStyle=UITableViewCellSelectionStyleNone;
//tableView.separatorStyle=UITableViewCellSeparatorStyleNone;
//创建头像空间
……(创建一个UIImageView控件用于存放头像的图标)
//创建性别的头像
……(创建一个UIImageView控件用于存放性别的图标)
//创建病人信息显示
UILabel*personLabel=[[UILabelalloc]init];
personLabel.tag=300;
personLabel.font=NomalFont;
[celladdSubview:
personLabel];
UILabel*sexLabel=[[UILabelalloc]init];
sexLabel.tag=400;
sexLabel.font=NomalFont;
[celladdSubview:
sexLabel];
UIImageView*bottomBg=[[UIImageViewalloc]init];
bottomBg.tag=500;
[celladdSubview:
bottomBg];
//创建病况描述输入框
if(indexPath.section==1&&indexPath.row==0)
{
GCPlaceholderTextView*txtVContent=[[GCPlaceholderTextViewalloc]init];
txtVContent.tag=TAG_TXTV_CONTENT;
[celladdSubview:
txtVContent];
}
}
5.3添加检查单模块实现
在添加了病人详细的病况描述之后,我们为了对病人的病情有一个全面并且清晰的了解或许需要对进行一些检查项目的检查,或者对病人进行开药、做护理等操作。
类似的页面我们需要对页面做一些适配操作,对于4、4s和6、6p等不同的屏幕尺寸进行不同的大小展示,方便用户操作,提升页面的美观度。
在这里我主要使用了屏幕的宽与长的比例对模块进行等比例放大缩小操作,这也是比较常用的一种适配方法。
页面及主要实现代码如图5.3所示。
图5.3选择不同开单界面