APP下载

基于移动互联的护理预约App研究与设计

2021-06-24潘献梅

微型电脑应用 2021年6期
关键词:菜单医师定位

潘献梅

(江苏护理职业学院 教务处, 江苏 淮安 223002)

0 引言

随着国民经济的飞速发展,人们对生活水平的要求越来越高,尤其是对自身进行日常护理方面,得到了大众的广泛关注。不过,随着经济和生活水平的提升,人们生活节奏加快、对效率的要求越来越高,因此在对自身进行护理时,尤其是节假日期间,若能够提前进行护理医师的预约,将有效提高人们的生活效率,以便安排个人行程[1-5]。

网络信息发展飞速,因此基于移动互联技术建立护理预约平台,设计相关App,并用于护理预约是有效的预约手段。作为护理预约App,一般需要具有数据实时更新、用户信息和喜好识别、护理医师及其所在护理机构信息的记录、信息共享等功能[6-10]。目前市场中常见的护理预约App的可靠性和整体性都不能够完全满足用户的需求。例如,在技术层面,这些App通常能够实现护理医师的信息共享,但并不能综合医师所在机构地点以及周边停车、交通等信息,提供完整的综合方案;再比如,在预约完成之后,若上一时间段的客人未能及时到店或取消预约,系统一般无法自动实现与下一位客人重新协商时间等。

基于以上问题,本文基于先进的自动化硬件、高效的算法和便捷的网络,设计了一种用于护理预约的App,将其应用到了个人护理预约中,并取得了良好的效果。另外,这种护理预约App也可以用于学校实验室的预约中,例如学生预约教师对其进行护理技能的培训和辅导,也可以通过该App预约实验室的时间和教师的时间;或者是当学生作为志愿者进行社区服务时,社区居民可以通过该App进行学生时间和护理地点的预约。对实验室的管理和学生的培养起到了极大的便利。

1 最佳预约方案算法

本文采用分阶段模型来推荐最佳护理预约方案,这一推荐方法,一方面能够兼顾用户的主管要求,一方面又能考虑到客观因素,可以给出更为合理的预约方案。具体步骤为:先确定符合用户要求的全部护理医师及其所属护理机构;然后按照用户个人对护理医师性别、从业时间、护理机构所处位置等需求进行初筛;最后通过对护理医师及其所处护理机构的综合属性进行推算,给出最佳预约方案的推荐。阶段推荐分两个阶段进行,第一阶段主要考虑用户的需求,即护理类型和护理医师的可预约时间;第二阶段进行综合客观因素筛选,如用户距护理机构的距离、护理费用、护理医师技术和行程交通情况。最佳预约方案推算如式(1)。

(1)

其中,T为最佳护理医师;p1,p2,p3和p4分别为因素重要系数;n1为用户距护理机构距离,可利用预约平台的定位系统进行赋值;n2为护理费用,可由数据库记录并进行赋值;n3为护理医师技术,由数据库记录并进行赋值;n4为行程中的交通状况,可利用TrafficLayer函数获取数据并进行赋值;n1,max为距离最大值,n2,max为费用最高值,n3,max为专业技术最高值,n4,max为交通最拥堵时的赋值。

距离因素和护理费用因素均是属于用户的支出因素,为较为重要的因素;护理医师技术对不同用户以及不同护理项目影响不同,为较次要影响因素;交通状况为最次要影响因素,为了方便推算,将式(1)优化为式(2)。

T=z+M×N

(2)

其中,

N=[n3n4]

将系统内可分配的护理医师信息代入到式(2)中,可进一步将其转变为式(3)。

T=Z+M×S

(3)

其中,

S=[NA1NA2…NB1NB2…]

在进行护理预约时,取n1,n2,n3和n4为实际可取值的x倍。其中,x为整数,处于(1, 10]范围内。设置目标值δ为x×(n1+n2+n3+n4)。编程时,float参量占位为32 bit,结果取值范围为[-3.4×1038,3.4×1038]。实际预约过程中,可预约医师的取值范围为[n4,n1+n2+n3+n4]。推算过程中,如果最终向量Y=x×(n1+n2+n3+n4)的值不溢出上述取值范围时,便是有效预约方案。在进行预约方案推荐之前,首先将Y=δ的方案剔除,然后对比向量Y的值,最终取Y值最小的方案为最佳护理预约方案。

本文所设计的护理预约系统的流程框图,如图1所示。

图1 最佳预约方案推算框图

首先,通过移动互联网将用户信息连接至数据库,获取数据库信息并进行数据初始化处理;通过对用户数据进行检测判定是否预约。若否,则判定是否结束,判定为直接结束,则结束预约;若判定为继续,则返回至数据检测;若进行预约,则获取用户信息、用户需求信息,根据用户信息对数据库中的护理医师进行筛选,获取符合用户需求的护理医师信息;然后对预约方案推算公式中各因素系数进行赋值,计算出护理医师被选择的矩阵值,对比筛选出矩阵值最小的方案,然后推荐最佳预约方案并储存在数据库中,结束预约过程。

2 数据库建立

本文选用MySQL进行数据管理。MySQL数据库能够

将数据按照类别进行储存,可以更为便捷地管理预约数据,简化数据调取的过程。另外,相对其他数据库来说,MySQL数据库的兼容性更好,可以同其他软件搭配使用。同时,MySQL数据库低成本的特性,也使得App开发的成本得到有效控制。

本文数据库主要包括4个不同的类别,分别为用户数据、护理医师数据、推算返回数据和用户预约数据。首先对各项数据进行分类,然后建立一个或多个数据表进行管理。用户数据包括用户注册数据和用户提交数据,用户注册数据储存用户信息表中;用户提交数据包括用户位置,储存于用户经纬度表中;用户预约需求,储存于用户要求信息表中;护理医师数据包括护理医师信息,储存于护理医师信息表中;护理医师所属机构地理位置,储存于护理医师经纬度信息表中;护理医师所属机构信息,储存于护理医师所在机构信息表中;推算返回数据包括用户到护理机构的距离,用户至护理机构行程的交通情况以及最佳护理医师信息;用户预约数据包括了最佳预约信息表和自主预约信息表。本系统的数据库构建整体架构如图2所示。

图2 数据库整体架构

3 App设计

本文基于Android 操作系统进行App的开发,选用java语言,基于eclipse为开发平台,进行编程。App的所有项目的编程均是在eclipse平台内创建完成,App的开发、运行及调试是在genymotion提供的Android 虚拟平台上进行。该护理预约App的菜单结构如图3所示。

图3 护理预约App菜单

包括5个菜单,分别为主菜单、预约定位菜单、预约需求菜单、最佳推荐菜单和自主预约菜单。本App的开发设计包括主菜单设计、预约定位设计、预约需求设计、最佳推荐设计和自主预约设计5个部分。

3.1 主菜单设计

本文所设计护理预约App是利用java语言进行编程,基于eclipse平台建立的。App主菜单的主要功能是实现向子菜单的跳转,因此在其界面显示了所有子菜单,并且具有点击跳转功能。本文设计预约App主菜单的界面文件,如图4所示。

主菜单界面如图4(b)所示,通过点击按钮跳转进入到子菜单界面。利用Android系统中的Button方式设计主菜单界面的按钮布局、用户ID、用户位置、文本以及背景的设置;按钮监听器是利用OnClickListener进行配置和调用,进一步实现主菜单到子菜单的跳转。

(a) (b)

3.2 预约定位菜单设计

用户进行护理预约时,首先要进行预约定位,也就是利用App的定位功能锁定用户位置,将经纬度信息发送至平台。预约定位菜单是通过创建dingwei.xml文件进行显示的,可获取用户ID信息和用户经纬度信息。在预约定位子菜单界面中,利用textview的方法实现用户ID的显示,利用edit-text的方法实现对文本的编辑。用户的经纬度信息是利用locationManager的方法获取,并通过locationListener方法进行实时更新。为了调用用户定位信息,需要在AndroidManifest文件中对Activity进行声明,并且需要添加“uses-permission android: name =“android.Permission.ACCESS_FINE_LOCATION””代码来打开App的定位权限。预约定位子菜单设计相关代码如下。

Public void doGet (HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{

// TODO Auto-generated method stub

//调取请求的参数(使用utf-8进行解码,然后用ISO08859-1进行编码)

if(request.getParameter(“chepaihao”)!=null||request.getParameter(“jingdu”)!=null||request.getParameter(“weidu”)!=null)

{

//String name=newstring(request.getParameter(“name”).getBytes(“ISO8859-1”), “UTF-8”);

string(request.getParameter(“chepaihao”).getBytes(“ISO8859-1”), “UTF-8”);

string(request.getParameter(“jingdu”).getBytes(“ISO8859-1”), “UTF-8”);

string(request.getParameter(“weidu”).getBytes(“ISO8859-1”), “UTF-8”);

System.out.println(“chepaihao:“+n+”jingdu:“+a+”weidu“+m””);

3.3 预约需求菜单设计

在进行护理预约时,需要对不用的护理医师、护理机构进行综合评析,对客观因素以及用户的主观因素进行考量。通常客观因素,App可以由数据库获取;主观因素需要用户由预约需求菜单提交到平台。预约需求子菜单通过编写yuyuexuqiu.xml文件进行显示,然后通过edit-text方法对文本进行编辑,提交用户预约需求,如图5所示。

图5 预约需求子菜单设计

用户提交的Activity文件依然是利用OnClickListener方法进行监听;信息传输利用http传输协议进行传输;为了调用用户预约需求信息,需要在AndroidManifest文件中对Activity进行声明。

3.4 最佳推荐菜单设计

在用户将其经纬度信息和预约需求信息发送到平台后,平台根据预约方案推算公式,完成最优的预约方案推荐。用户可以通过点击最佳推荐按钮直接跳转至最佳预约方案进行预约。最佳推荐子菜单需要编辑3个.xml文件,分别为activity_main_zuijia.xml用来获取用户信息;layout_loading_zuijia.xml用以实现界面跳转;activity_hello_zuijia.xml最佳预约方案显示。最佳推荐子菜单的显示以及文本编辑也是利用textview方法和edit-text方法实现的。另外,也需要在AndroidManifest文件中对Activity进行声明,方便信息的调用。最佳推荐子菜单设计的部分代码如下。

try{

conn=super.openDB();

if(conn!=null){

String sql=“select*from tab_user where unsername =?”;

preStmt = conn.prepareStatement(sql);

preStmt.setString(1,src);

rs=preStmt.executeQuery();

if(rs.next()){

userBean=new UserBean(rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4));

System.out.println(“sql:“+sql+”rs:“+rs+”ub:“+userBean+”);

3.5 自主预约菜单设计

当最佳推荐不能满足用户需求时,用户可以进行自主预约,自主预约子菜单的设计如图6所示。

图6 自主预约子菜单设计

自主预约子菜单的设计是通过创建reservation.xml文件进行设计的,用户可以通过输入自己的ID、密码和目标医师实现自主预约。自主预约子菜单的显示以及文本编辑也是利用textview方法和edit-text方法实现的。另外,也需要在AndroidManifest文件中对Activity进行声明,方便信息的调用。

4 总结

基于Matlab环境设计了一款可进行护理预约的App,并对其算法、数据库和App的设计进行了详细的介绍。本护理预约App能够综合考虑多种客观因素和用户的主观因素,然后对护理医师信息进行筛选,得到最佳推荐方案。另外,若最佳推荐方案不满足用户需求,还可以通过自主预约完成护理预约。本App主要包括5个菜单,分别为1个主菜单和预约定位、预约需求、最佳推荐和自主预约4个子菜单。本App是利用java语言进行编程,基于eclipse平台建立的。

猜你喜欢

菜单医师定位
中国医师节
韩医师的中医缘
《导航定位与授时》征稿简则
中国新年菜单
Smartrail4.0定位和控制
找准定位 砥砺前行
本月菜单
医师为什么不满意?
青年择业要有准确定位
80位医师获第九届中国医师奖