基于嵌入式技术的家庭远程医疗监护系统的方案设计书与实现-修改稿4.10

发布时间:2019-04-20 06:25:12

基于嵌入式技术的家庭远程医疗监护系统的设计与实现

摘要

技术决定着方向,随着不断地进步与创新,人们的生活也越来越轻松。在这个计算机技术电子技术无线通讯技术飞速发展的时代,传统的医疗监护正在将这些先进的技术与其融为一体,发展成高度智能化便捷化高效化的远程医疗监护系统。该系统致力于提高偏远地区的就医效率,保障医疗资源的普遍共享及慢性病人的及时监护治疗。

家庭远程医疗系统是一个对象化的远程医疗系统,主要面向的是家庭,在家庭服务,只有少量的医疗资源共享,人们不需要再去医院,而是在家里就可以进行合理的医疗诊断。本系统主要由三部分组成,包括医学数据采集工具部分、用户电脑部分和医疗中心部分。工作中,首先由医学数据采集工具采集数据,通过ZigBee无线网络将采集到数据传输到用户计算机上,再由计算机上编写的智能医疗软件提供一些心悸、胸闷、手指麻木和疼痛、肌肉酸痛、年龄、身高体重、有无以往病史等医学选项供用户选择,辅以医学数据采集工具采集到的生理数据,通过决策树ID3算法来智能判断用户是否正常,并根据医学数据库给出相应的治疗方法或者初步的医疗建议,同时该软件可供用户随时查看自己的过往生理或病史数据并修改。然后将数据经Internet发送到医疗中心的数据库,由医疗中心的医生通过在医疗中心服务器端编写的软件,可以快速准确的判断急需帮助的用户,根据对数据的分析给予人工建议和治疗。

本文主要重点介绍了Zigbee组网的硬件设计及软件设计;用户电脑部分决策树ID3算法与智能医疗软件的结合及模糊算法与医疗中心部分软件的结合;用户电脑部分和医疗中心部分数据库的编写及两端的通信。

第一章绪论

1.1 课题的背景及现状

由于我国实行计划生育,大多数家庭都是一个孩子,随着孩子的长大逐渐的走入社会,越来越没有时间去照顾家里的父母,只能打电话去询问父母的身体状况,不能有效的带着父母去医院做体检,而且父母有了一些小毛病也会因为怕让孩子担心而不告诉孩子,这些是我们不愿意看到的。随着社会的快速进步,人们对自己的身体是否健康越来越重视,然而由于我国的各方面的经济因素,那些设备先进医疗水平高的医院主要集中在大城市,我国人口基数又大,大家又都想去好的医院去看病,造成了部分医院的过度负载。更不要说偏远地区的家庭,大量的外地务工人员的父母独自在家,儿女想要带父母去好的医院去检查身体,甚至可能要跨越几个城市的距离,既耗时又费力。传统的医疗方式在现在这个社会已经跟不上人们越来越多的健康要求。

目前我国的医疗方式虽然还是传统的医院就医方式,但伴随着我国经济的高质量增长和对尖端技术的越来越重视,我国的电子技术,通讯技术,医疗技术得到了质的飞跃,将电子技术、信息技术、通讯技术、医疗技术相结合的远程医疗已经突破了人们的传统医疗的概念,得到了人们的接受。人们越来越认识到远程医疗会给他们带来好处,他们可以更加便捷,更加廉价的去享受合理的医疗资源。

因此,这些因素很大程度上促进了远程医疗的进步,而家庭远程医疗监护系统以一种对象化的医疗模式,为家庭,为个人,用不同的技术与传统医疗相结合的方法,来探索家庭医疗、家庭监护、家庭成员健康保障等新需求的发展,致力于向家庭用户提供智能化简便化的新医疗。

1.2 远程医疗技术的发展现状

1.2.1国外远程医疗的发展

远程医疗技术的被提出和发展最早是在国外,特别是欧洲和美国,他们在相关技术领域一直走在世界前列。他们投入了大量的人力物力财力,由早期的战地急救,远程诊断等研究,开始逐步探索远程医疗技术的发展,为医疗新模式的信息化、简捷化、智能化做出了长足的贡献,也给了其他探索该技术的国家发展思路。随着通信网络的大踏步发展,伴随着4G网络的降临,远程医疗将会得到更加迅速的推动。

通过查阅相关文献资料,美国作为整个行业的首位,在该领域的发展中一直起着积极地主导作用。其Iowa大学将远程医疗的发展需求定位在偏远不发达地区,在那里通过大量的实验,证明了这些地区对远程医疗系统的需求是十分强烈的,对系统的未来发展有着非常重要的作用。

法国开发了一套名为电子医生的远程医疗系统,该系统不仅使患者免于四处奔走,还大大增加了医疗的大面积覆盖,降低了成本。目前已经有许多欧洲国家对此系统进行推广。瑞典全国几乎所有的大医院都建成了医疗数据传输系统,依靠该体系可以更加效率地开展各项业务。

在日本,有一家医疗公司为了发展远程医疗系统,寻求与其他网络技术的公司协同发展。意在解决城市与偏远地区之间的医疗技术,服务等差距。其中东京VIEWSEND这家企业,通过其独特的存片技术以及网络技术,研制了可供用户相互联动的远程医疗系统,更好地发挥远程医疗的作用

1.2.2 国内远程医疗的发展

我国地域广阔,地区的医疗水平之间存在着明显差异,其中在农村和偏远山区更能体现,所以远程医疗系统具有广阔的前景。但是,远程医疗的发展在中国比许多国家都差,技术相对落后。自上世纪80年代左右才开始展开逐步的探索。1986年一名海上船员在海上得了急症无法治疗,该员工的公司医院为解决他的急症治疗,通过越洋电报进行会诊。并成功为全国各地的医院进行了远程会诊。1994年中山医院第一次通过将图像与数据在医院之间互动同传的模式,研究了远程医疗,给了其他医院一个发展的模型,

20054月,北京大学医学部设立了一个远程医疗中心。该中心有着精湛的医疗技术,可靠的医务人员,友善的医疗服务,这些优点都可以与其他医院同享,同时为其他的医院提供发展上的帮助,以达到使不同地区的人们可以享受到更好的医疗资源。

有了各个医院对远程医疗系统的逐步探索发展,国家也对该系统的发展与计划有了相应的部署。到现在远程医疗已经活跃在我国的农村与城市之间。随着技术的创新融合,远程医疗技术也发生了阶段性的变化,原来只是通过电视等工具查看诊断,现在通过各种新技术的加入,已经发展成了综合图像处理,语音处理的数据传输诊断。

1.3本课题研究的主要内容

本课题要完成的主要有以下几点,1.根据家庭用户的实际情况,综合筛选对比几种不同的方案,选择一种性价比较高的系统方案,并且搭建系统的主要框架。2.主要学习CC2530的芯片手册及其功能实现,完成医学数据采集工具部分的硬件及软件设计。3.学习Zigbee技术及其已成功的研究事例,完成不同节点之间的组网,及数据传输。4.查阅资料了解及查询相应的医生生理信息知识,通过决策树ID3算法与生理信息数据的结合,完成用户电脑端的智能医疗软件的编写;通过模糊控制算法与用户提交的生理信息数据的结合,完成医疗中心端的监控软件的编写。5.学习及完善SQL Server相关的知识,掌握C/S模式下两端通信的主要知识,完成两端数据库的编写及两端数据库之间的通信。6.在实验室完成系统的整体测试,对产生的问题进行总结和改正。

1.3.1 预期目标

1.通过医学数据采集工具,准确的采集到用户的医学生理数据

2. 将采集到的数据通过ZigBee网络传输到用户电脑。

3. 在家庭电脑端与医疗中心端建立相应相关软件。通过决策树ID3算法来处理用户的生理数据与选项数据,以此为依据来进行用户电脑端的智能反馈的医疗

4.在家庭电脑端与医疗中心端建立相应数据库,将用户测量的生理数据进行有效的保存。

5.用户电脑端与医疗中心端的数据能有效传输并保存。

1.3.2 课题研究的意义

该医疗系统极大地方便了许多医疗需求者,特别是家里的留守老人和一些身体不方便的残疾患者,使他们不用再像以前一样,艰难跋涉去仅有的一些医院寻求治疗和诊断,大大减轻了人们的劳苦。同时在家里进行医疗,可以缓解人们在医院时的紧张压力,以更加轻松的心情去检查身体,而且时时刻刻都可以进行必要的检查,给自己更给儿女以安心。不仅如此,该系统在客户端设计的一个软件来分析用户的生理信息,然后综合用户情况提出一些合理的改善建议,使用户可以在第一时间得到反馈且根据有效的信息进行自我调节,更有效地填补了医疗的空白期。该系统在医疗费用上也比平时去医院看病减少了许多,平常去医院看病即使是小问题也要挂号,排队等。在家里自我检查既给自己提供了方便,减少了花费,也节省了医院的公共资源,让那些需要急救的人最先受到治疗。

1.4 本课题的创新点

1.创新的研究了决策树算法在医疗采集数据处理中的应用。

2.创新的在家庭远程医疗监护系统中研究了智能反馈医疗。

1.5 论文的章节介绍

第一章:绪论部分,主要介绍了课题的现状背景,课题的研究意义及发展情况,大概介绍了文章要研究的内容。

第二章:主要包括系统整体框架的介绍;医学数据采集工具的元器件的选择,整体的设计。

第三章:主要介绍了无线通信方式的对比分析,Zigbee技术的简析,RFD终端节点以及协调器设备的程序设计。

第四章:主要介绍了决策树ID3算法的简析,决策树ID3算法与生理数据的融合以及相关数据的计算,基于计算所得的规则智能医疗软件设计。

第五章:主要介绍了模糊控制算法简析,模糊控制算法对用户的需治疗程度的分类,基于所得规则的监控软件的设计,两端数据库的编写。

第六章:主要介绍了TCP/IP协议族的相关内容,基于Socket的客户端及服务器端的程序设计。

第七章:对本课题的总结及对研究课题的发展预期。

1.6本章小结

本章作为论文的绪论部分,首先论述家庭远程医疗监护系统的背景意义,通过查询文献资料对国内外远程医疗的发展的现状做出了介绍,然后介绍了本课题所研究的主要内容及其所要达到的预期目标,最后说明了该论文的创新点所在及论文章节的介绍。

第二章家庭硬件平台的设计

2.1系统的整体构架

本系统主要由三部分组成,包括医学数据采集工具部分、用户电脑部分和医疗中心部分。如图1

1 系统的整体构架

医学数据采集工具部分主要由测量生理数据的电子医疗模块组成,如血压测量工具,温度测量工具,ZigeBee无线传感器(第三章介绍)等组成。医学数据采集工具部分的功能主要为负责将家庭用户的生理信息进行测量,然后将数据发送出去。用户电脑部分主要由ZigBee协调器及用户电脑上的智能医疗软件和本地数据库组成。用户电脑部分的主要功能为接收医学数据采集工具所采集发送的生理数据,通过电脑上的智能医疗软件对家庭用户做出合理的医疗建议,同时将用户每次测量的数据保存到本地数据,方便用户查询以往的测量信息,然后将数据上传到医疗中心数据库。医疗中心部分主要由医疗中心端数据库,用户状态监控软件,医务人员组成。医疗中心部分的主要功能为将家庭用户上传的数据进行保存,通过用户状态监测软件判断每个用户的状态,并以最危险的用户作为优先显示,然后由医务人员通过用户的联系方式进行诊断治疗。

2.2医学数据采集工具的设计

2.2.1 相关元器件的选择

医学数据采集工具元器件主要由CC2530芯片、串口部分、LCD1602液晶显示器、DS18B20温度传感器、电子血压计、Atmel 3.5mm接口数据转接卡组成。

CC2530芯片:有着2.4-GHz IEEE 802.15.4的标准、综合了ZigBee技术与RF4CE 应用,构成了一个多功能的系统。它在材料消耗上的成本很低,但功能强大,可以通过相互之间的连接构建一个功能强大的网络。CC2530 同样将RF 收发器的高性能融为一身,还具有高性能的8051 CPU,在它系统内可以完成闪存的编程,当然还有许多其它强大的功能。CC2530 包含不同的闪存版本:包括CC2530F32CC2530F64CC2530F128CC2530F256这四种,由于运行模式不同,它的转换时间很短,所以它可以满足极低功耗系统的需求。

LCD1602液晶显示器:由于主控芯片选择了CC2530芯片,以及功能需求的廉价低功耗,所以选择了LCD1602液晶显示器。

其主要要特性:

13.3V-5V工作电压,内含复位电路

2)具有多种控制命令

3)显示数据存储器的存储容量共为80字节

4)比起其他相同规模的显示器其体积小,重量轻

5)可以提供多个5X7的字符发生器由开发者使用

Atmel 3.5mm接口数据转接卡:

DS18B20温度传感器:其为平常主要使用的温度传感器,成本极低,个体小易摆放,有着较高的抗干扰能力而且在精度上也是很准确的。

电子血压计:它可以一次性检测出多种生理数据,并能通过USB接口,ZigBee无线网络将这些生理数据发送出去。

2.2.2温度采集工具的设计

温度采集工具部分主要由CC2530芯片、串口部分、LCD1602液晶显示器、DS18B20温度传感器等元器件组成。主要的功能为连续采集3次家庭用户的身体体温,然后再LCD1602液晶显示器上显示出来,然后通过ZigBee无线网络将数据发送出去。该工具的电路图如图2,3,4,5,6。每一个温度采集工具作为一个RFD节点,将所有工具进行ZigBee组网。

2 CC2530芯片

3 电源部分

4 串口部分

5 DS18B20

6 LCD1602

2.2.3相关电路图的主要介绍:

1.电源部分:主要功能就是为整体硬件供电,并提供合适的电压,该部分采用了HT1117-3.3芯片,将外部5V电压转换为该硬件设备需要的3.3V电压进行供电。

2.DS18B20温度传感器部分:主要功能为采集温度值,通过选用cc2530主控芯片的P1.0来作为DS18B20数据读取引脚。

3.LCD1602部分:采用LCD1602对获取的数据进行显示。其显示原理通过其自身的物理性质,利用电压在其各部显示区域进行操作处理,当有电压时就会显示对应的图形。该课题中LCD1602共分为上下两行显示,第一行显示为温度为,第二行显示为采集到的具体温度值。

第一行的汉字的显示原理:

该屏幕上汉字的显示是通过图形显示的方式实现的。首先通过自摸提取软件提取温度为这三个字的点阵码,其中每个字大小均为32B,字体以中间对称两边各为16B。然后通过在1602上已显示的行列号,每一行的列数,选择其显示RAM相对应的地址,接着设置光标,将要显示的第一个汉字设置第一字节,在此之后设置光标位置佳1,再给字设置第二字节,以此类推,当整个字体的大小达到32B,那么该字就可以整体显示在LCD1602上了。

第二行的字符的显示原理:

第二行主要显示采集到的用户的温度数值,LCD1602显示器的每一个字符时由6×88×8点阵所构成的,通过找出屏幕上显示的对应的几个位置所对应的RAM8字节,将这些字节的不同位通过设置“1”将其点亮,不需要的字节通过设置“0”使其不亮,以此来组成需要显示的字符。同时也可以通过其内置字符发生器的控制器来设置,这样的方式可以更简单的设置,该控制器可以设置为用文本的形式工作,通过在1602上已显示的行列号,每一行的列数,选择其显示RAM相对应的地址,接着设置光标,写入符合该字符的代码就可以显示了。

主要的程序流程为:初始化LCD1602----延时设置----设置第一行显示的位置----显示第一行的内容----设置第二行显示的位置----显示第二行的内容

4.串口通信部分,采用最常见的设计电路,使用MAX3232芯片将CC2530芯串口出来的TTL电平转换成能与PC机连接的232电平,这样就可以通过上位机从串口获取到采集的数据。

5.协调器和RFD子节点采用CC2530射频模块进行设计,它们在硬件上的设计是一样的,不同的是担任的角色,这个有程序控制。图中所示是射频模块的最小系统。

2.2.4电子血压计的整体设计

电子血压计整体设计如图7所示,图中显示了电子血压计,和一个ZigBEE无线网络RFD节点。

7电子血压计

电子血压计采集到的生理数据,通过一根数据线与数据转接卡相连,数据卡如图3.2所示,数据转接卡通过串口与CC2530芯片相连,图3.3为数据转接卡和ZigBee节点。采集到的血压值等数据通过ZigBee无线网络将数据发送出去,由另一个CC2530芯片构成的ZigBee协调器负责接收,再通过USB接口将电子血压计上的数据送入用户电脑上的智能医疗软件上,再将生理数据在本地数据库保存后,会自动把该数据通过家中Internet网传输至医疗中心的数据库中。

word/media/image9_1.png8数据转接卡图9数据转接卡及ZigBee RFD节点

2.2.5USB技术

因为本系统主要面向的人群是家庭里的中老年人,所以要是系统变得简单易操作,于是为了减少复杂性,本系统将ZigBee协调器与用户电脑相连接的接口选择为USB接口。

USB主要是用于电脑设备和外部其他设备之间的通讯,它的出现解决了传统计算机串口应用的单一性,每次支持一个外部设备,都要占用计算机的系统资源,而且为了对不同的外部设备安装驱动程序,将需要重新启动计算机系统。USB的出现完整的解决了这些问题,他具有即插即用的功能,最主要是不用再重启电脑来更安装外部设备的驱动程序。如今USB经过长时间的发展,已经从USB1.0USB2.0逐步发展到USB3.0版本,在ntel、微软、惠普、、NECST-NXP等公司的联合协助下,USB3.0的理论速率达到了最高的5.0Gb/s,外部设备在新一代的USB3.0的技术上,可以更快速的连接到计算机上。

USB具有如下特点:

1)应用便捷

所有外部设备的USB接口是一致的,连线简单。当外部设备连接到计算机上,不需要手动操作,计算机自动将该外部设备的驱动安装到计算机上,使用完毕可直接进行热插拔。

2)应用范围广

最新的USB技术,它的传输速度已经可以被提高到5.0Gb/s。它对带宽的使用率很高,所以当不同外部设备的带宽不同时,(如无线键盘,电子音箱,无限鼠标,移动硬盘),它可以可以同时支持两种传输方式,包括同步传输方式和异步传输方式。也就是说可以同时支持各种速率的外部设备,最多可以同时支持高达127个外部设备。

3)拥有纠错能力

USB系统可以随时控制设备的进入退出。在该系统的协议中包括了BUG传输的管理,BUG的修复等不同的功能,同时通过分析传送类型来修正其中所产生的问题。

2.3 ZigBEE协调器的设计

Zigbee协调器主要功能:

协调器是整个ZigBee网络中相当重要的仅有的一个节点,它一般位于数据监控中心,负责接收所有节点发送过来的数据并保存,同时它还控制着整个网络的建立,维护,设备进出网络等功能。

该系统的协调器主要构成部分为CC2530芯片,串口部分,电源等,相关主要电路如图10

10 协调器主要电路

实物图

2.4本章小结

此章节主要介绍了家庭远程医疗监护系统的总体设计框图,及该系统三部分的主要功能。然后介绍了医学数据采集工具主要的元器件选择。着重介绍了温度采集工具的设计,电子血压计的整体设计,ZigBee协调器的设计和USB接口的设计。

第三章ZigBee网络的设计

本课题的无线网络需求:

本课题的医疗采集工具与电脑之间的通讯方式,采用无线传输方式,传输距离近,要求低成本,易操作,低能耗,高性能。

3.1无线传输方式的分析

3.1.1 ZigBee无线网络

ZigBee技术的发展主要依据在IEEE802.15.4标准下,其物理层,访问控制层直接应用于此标准。

ZigBee技术是最近比较流行的无线通信技术,它主要应用于低能耗、短距离的无线网络远程控制领域。它的发展主要由于蓝牙技术存在一些缺陷,包括复杂度高、能耗大、组网的规模很小等。为了入手改善这些缺点,人们开始研究ZigBee技术的发展,基于802.15.4标准,实现传感器和传感器之间的通信连接,在彼此之间的通信中,消耗的能量少之又少,而且在节点与节点之间的通信效率也是非常高的。

ZigBee网络其自身的主要优势共包括如下几点:

耗能低:在设备待机的情况下,两节五号电池可以维持设备的正常工作,至少可以维持半年到两年的时间,甚至更多。

廉价:由于它对通信控制器要求不高,而且ZigBee的协议专利的公开免费的,目前市场上一块芯片的价格大约是12元左右。

反应速率快:ZiBee的应答反应很快,由非工作状态切换到工作状态需要极短的时间,节点之间的组网时间同样极短。

高性能:ZigBee的网络结构主要有三种,(星状网络结构,片状网络结构,网状网络结构)。一个节点负责接收信息,其他节点负责收集信息,主节点可以管理数量多达254个的子节点。

安全性高:ZigBee共三层安全等级,包括非安全设置,访问控制列表的使用来防止数据和高级加密标准(AES使用非法访问128)的对称密码,以合理确定其安全性能。免执照频段。使用(工业、科学和医疗)频段,915MHz(美国) 868MHz(欧洲)2.4GHz(全球)

ZigBee网络的不足之处:

穿透性很差:ZigBee网络之间遇到遮挡物的时候,信号很难穿透,在数据传输过程中如遇到阻挡,则会造成数据发送失败。

传输距离短:在各个节点间不进行相互数据传递的情况下,ZigBee网络之间的有效距离最多有100M

抗干扰性能差:如果在ZigBee无线网络中存在一些高功率的设备,那么ZigBee网络就会受到很大的影响,数据的传输会发送不可预见的情况,接收到的数据通常是不完整的。

3.1.2 GPRS网络

GPRS技术是2G移动通信技术,3G通信技术之间的通信技术。它的传输方式区别于其他网络的传输方式,它是以封包的形式来传输的。GPRS技术通过使用TDMA信道,可以使得数据的发送更加快捷。

GPRS网络的优点:

网络不间断:外部设备与GPRS网络连接的时间极短,可以随时与网络连接。

数据传输快:GPRS的理论传输速率可以达到171.2kbps,即使在某些环境的影响下会相应的降低传输速率,但整体上还是很高的。

GPRS网络的不足之处:

成本相对较高:一个GPRS模块在市场上的价格大约为180元左右,而且由于GPRS是通过流量消耗多少来计费的,对于大量传输数据的用户,会产生相对较高的资费。

环境影响大:在某些环境下如封闭的卧室等,会出现连接不上网络,或者连接网络时断时续的情况,对于急需要发送数据的用户来说,会带来非常严重的后果。

3.1.3 蓝牙技术

蓝牙技术的创造堪称一次震撼的变革,它的出现打破了以往有线连接的束缚,成为了最早的无线连接方式。它的发展目标是低成本,近距离的无线传输,主要面向于与移动设备通信。蓝牙技术最早为爱立信公司在1994年所研发,并在接下来的几年内成功吸引了各大移动设备公司的加入。设备与设备之间的蓝牙通信必须满足主动被动的关系,只能由主动方搜寻被动方(双方可以根据需求的不同,交换主动方和被动方的角色关系),发起配对,建立相应的链接,链接成功建立后两方都可以传输和接收数据。

蓝牙技术的主要优点为:

(1) 波段开发性:蓝牙技术工作的波段为2.4GHz,该波段为全球开放,不需要花费任何费用。

(2)在短距离的数据传输方式上,蓝牙技术是最简单,最低功耗,最安全的方式。

(3)市场应用广泛,产品数量极多,有着相当多样化的功能。

(4)良好的蔽障性:在传输的空间中出现的障碍物都可以穿过,基本不存在空间上的需求。

(5)可发送语音数据,组网简单容易。

蓝牙技术的不足之处:

(1)传输距离短,不适合远距离的传输

(2)容易受到微波,高功率设备等影响。

3.2本课题无线网络方式的选择

1 以上几种无线通讯技术的对比

通过对以上三种无线通信技术的比较,其中Zigbee技术,考虑到它的低能耗,低成本,和操作方便等优点,于是本课题选择ZigBee技术作为医疗采集工具与电脑之间的通讯方式。

3.3 Zigbee技术介绍

3.3.1 ZigBee技术简介;

带着低成本,低能耗的目标出发,几大国际公司建立发展联盟,共同开发了ZigBee无线网络技术,IEEE802.15.4ZigBee的发展根本。ZigBee技术有着简单的栈体结构,主要由七层OSI模型组成,主要包括(物理层、MAC层、应用层,网络层等)。

物理层主要有以下几个功能,(1)根据不同的因素设定不同的通信频率包括(2.4GHZ868/915MHz)。(2)在不同频率的下制定了不同的传输速率及精度差。同步,物理层)包头部分和有效负载部分形成了由物理层数据的存储格式,而该层与MAC层的数据交换由射频部分在物理层内负责。

MAC层的主要功能为:(1)建立设备间的无线链接(2)管理帧的收发及控制信道(3)保证链接的稳定支持及安全性。MAC层的数据存储格式,分为帧头和尾架,负荷。帧头的工作为控制不同信息及设置网络地址;载荷负责了该层与各设备之间的接收与发送;帧尾负责判断数据包的准确性。

网络层的主要功能:(1)提供帮助从而保证MAC层可以合理的工作(2)通过数据及管理实体为上一层应用层开接口,管理实体负责网络的配置及数据接收,数据实体负责提供数据单元等。网络层通过存放帧报头,有效载荷来存放数据

应用层构成主要有3个组成部分,APS应用支持层、设备对象以及厂商的自定义应用对象。APS应用支持层负责维持设备与设备之间的连接,保障在它们之间的数据可以正常的传送。设备对象的意思就是ZigBee整个网络中不同节点所担当的职责,如ZigBee协调器,ZigBee RFDFFD)节点等;同时设备对象还担负搜寻设备网络信号,并选择提供合理内容。厂商的自定义应用对象就是用户以根据自己的需求使用ZigBee技术,在不同的环境条件下,创建不同功能的无线网络。

3.3.2 ZigBee网络组成

ZigBee网络主要是由节点之间相互连接从而组成网络,其中ZigBee网络中的节点大致可以分为三类:FFD节点负责的路由器,FFD节点负责的协调器,RFD节点负责的数据传输外设。

FFD节点为在ZigBEE网络中可以负责任一功能的万能节点,其中FFD节点负责的路由器主要功能:由于有些节点不具备相互通信的功能,于是该节点就担负了这些节点间的数据中转职责,接收这些数据然后将数据再发送到另一个FFD节点负责的路由器上。FFD节点负责的协调器主要功能:该节点是整个ZigBee网络中相当重要的仅有的一个节点,它一般位于数据监控中心,负责接收所有节点发送过来的数据并保存,同时它还控制着整个网络的建立,维护,设备进出网络等功能。

RFD节点属于FFD节点的功能压缩版,它有着简单的应用,叫低的成本,它没有FFD节点功能的多样性,只具有数据传输功能,即将采集到的数据通过网络传输给FFD节点负责的路由器或协调器上。

3.3.3 ZigBee网络拓扑

ZigBee组网是将所有单独的个体节点,通过无线网络连接在一起,主要的连接方式有星形连接模式,网形连接模式和树形连接模式。ZigBee网络中主要由两种节点构成,根据功能的不同需求使用不同的节点,全功能节点可以作为整个网络中数据信息的发送站,中转站或者接收站,半功能节点只能在外部设备中起到发送数据的作用。

星形连接模式

通过星形连接模式组网的ZigBee网络是最简单的网络连接模式,只需要从外部设备中选择一个作为协调器负责接收数据,但也只有这个设备可以接收数据,其他设备节点只能发送数据而不能接收数据。

树形连接模式

树形连接模式是从星形连接方式发展而来,考虑到星形连接模式的网络中,设备与设备之间是不能进行数据互传的,只能在协调器设备中看到每个设备的数据信息,于是树形连接方式在它组建的网络中加入了一些可以作为数据中转功能的设备节点,该类节点分布在树形网络中的不同位置,通过它们之间建立起通信的桥梁,每一个具有数据中转功能的节点负责与它相连节点的数据收发,然后将数据与和它同类的节点进行相互的交流,组成了一个多个星形网络连接在一起的树形网络。

网形连接模式

网形连接模式是在以上几个连接方式的原型上迈出了一大步,在其所构建的网络中,所有设备都具有智能化的处理器,设备与设备之间不需要数据中转可以直接进行数据交流,数据可以在设备之间无阻碍的进行传动,由近及远,由远及近,构成一个庞大的网络环境,数据可以轻轻松松的传送到所需求的位置。同时由于该网络不需要具有数据中转功能的设备,消除了当出现该设备出现故障时整个网络瘫痪的隐患,保证了网络可以一直绿灯让数据交流畅通无阻。

家庭远程监护系统是以家庭为单位,在家庭内实现数据的统计,本着功能和网络简单的需求,该系统选择星形连接模式,由各个医疗数据采集工具作为网络的子节点,将ZigBee协调器安装到电脑上,负责接收数据。

3.3.4 ZigBee网络维护

新网络的构建:

新网络的构建是通过整个网络中的协调器设备完成的,以调用NIME-NETWORK-FORMATION.request命令的方式开始。NIME-NETWORK-FORMATION.request的属性为

Scanchannels,

ScanDuration,

BeaconOrder,

SuperframeOrder,

PANId,

BatteryLifeExtension

该命令主要工作过程为首先判断信道是否扫描及时长,记录应用层信标帧和超帧序号,是否赋予Id值。

ZigBee组网的主要过程总结如下,协调器应用层通过.request命令指给网络层,网络层再通过指令传送给MAC层,使其开展信道能量的获取及反馈;网络层收到反馈后给予PAN标识和网络地址,然后向应用层报告。

如何加入网络

在已知网络存在后,协调器通过调用NLME-PERMIT-JOINING.request命令来发送可以连接网络的证书。NLME-PERMIT-JOINING.request属性为

.request

PermitDuration

.request (

Status)

该命令的主要值为可以连接网络的证书有效期的限制,以此来控制连接的时段。加入网络的形式主要有三种,联合模式即新外设与已知协调器共同加入网络;直接模式即先由路由或者协调器与新外设结合,然后新外设作为整体加入网络。再加入模式即已在网络中的设备,在无法连接到协调器的情况下,再次加入网络。

断开网络

在已知网络中外设需要加入网络也需要断开网络,包括协调器本身,于是协调器通过调用NLME-LEAVE.request命令来控制外设断开网络。NLME-LEAVE(.request/.confirm/.confirm)的属性为

.request

DeviceAddress

.confirm (

DeviceAddress

Status

)

.confirm(

DeviceAddress

)

该命令的主要值为显示外设地址,如果地址为空则断开网络成功,并由网络层发送.confirm指令。外部设备从网络断开主要有两种形式,其一为外设从协调器处申请离开:这种形式又分为外设离开过程和协调器离开方式,外设离开过程为外设发送地址属性为空的.request指令,由网络层判断是否有相同的操作,如果没有则由MAC层发送离开网络指令;其二为协调器指示外设离开;

3.4本课题中ZigBee技术的实现

本系统中ZigBee网络以星形网络模式实现,温度采集工具标记为1ZigBee节点,功能定义为采集温度并将其发送出去;电子血压计工具标记为2ZigBee节点,功能定义为采集用户血压值并将其发送出去。以CC2530芯片为中控芯片的设备定义为3ZigBee协调器节点。以此类推,有相同功能的医疗采集工具按顺序定义为不同编号的ZigBee节点,负责相同的数据采集及发送职责。

3.4.1 IAR平台

IAR Embedded Workbench for 8051是本课题中CC2530芯片的开发环境,主要编程语言为C语言。该软件是IAR Systems公司开发的一套具有高性能的软件,该软件能提供给用户各种不同的选择,根据硬件的不同需求的不同选择对应的开发工具。

该软件融合了各种用户工作需要的工具展现了强大的功能:

1)开发环境可根据用户需求自定义扩展:包括多层次功能表示,智能化源文件浏览器等;

2)先进的编译器:可完美支持各系统间的移植;支持各类转换形式;

3)功能强大的C-SPY®调试器:控制尺度十分精密,易支持拖放操作;查看代码的以往执行过程非常方便;实现了编辑的同时可进行调试的功能;

4)功能强大的IAR XLINK 链接器:代码,数据的放置可通过用户选择段命令进行精确的控制;支持多种调试和仿真器;

5)标准的IAR库和库工具:所必须的源代码都包括其中,用户可根据需求自定义配置。

3.4.2网络协调器以及RFD节点的主程序流程设计

RFD终端设备程序过程:程序首先对CC2530主控芯片和1602液晶显示器进行初始化,初始化成功后将传感器电源打开。接着在完成初始化协议栈后,开始向协调器设备发送允许进入网络的信号,等待协调器的反馈,设置该终端设备的网络地址。如果协调器允许请求且设备进入网络成功,终端设备会以二极管点亮标识,如果没有成功则二极管不会点亮。

在该终端设备成功进入网络之后,就可以进行检测温度值或者血压值的操作,然后通过循环调用SendData()函数将这些数据发送到协调器。设备可设定在一定时间内连续采集用户的温度值或者血压值,把数据一起发送到协调器。数据发送成功后,设备会进入待工作状态状态;如果数据发送失败,设备会重新检测用户的生理信息,然后再次发送给协调器直到反馈成功。终端设备程序流程图如图11所示

11 RFD程序流程图

协调器设备的程序过程:程序首先把CC2530主控芯片进行初始化处理,包括内部的协议栈同时开启中断,然后程序开始建立一个新的网络,ID号,频道号等。当前的物理地址,包括新建立网络的频道号等都可以在串口工具中显示。

然后协调器应用层程序模块开始调用函数监测空中的无线信号。当监测到空中有终端设备申请进入新建立的网络,串口调试工具会显示该设备的物理地址,同时协调器也会将其对应的网络地址赋予它。然后协调器调用aspFSM()函数来接终端设备发送过来数据,包括温度值或者血压值,然后再将数据从串口发送出去。协调器设备程序流程图如图12所示

12网络协调器程序流程图

3.5 主程序部分代码

# include “wx_xtq.h”

UINT16 ping_cnt

UINT32 my_timer

LADDR_UNION dstaddr

typedef enum_PP_STATE_ENUM{

PP_STATE_IDLE,

PP_STATE_SEND,

PP_STATE_WAIT_FOR_TX

}

PP_STATE_ENUM,

PP_STATE_ENUM ppState

BYTE payload[2]

Void main (void){

my_timer=0

halInit()

evbInit()

#ifdef WXLPAN_COORDINATOR

InitSensorIO()

SensorPowerOn()

#endif

aplInit()

conPrintConfig()

ENABLE_GLOBAL_INTERRUPT()

EVB_LED1_OFF

EVB_LED2_OFF

#ifdef WXLPAN_COORDINATOR

apleFormNetwork()

while(apsBusy()){apsFSM()}

conPrintROMString(“Network formed,waiting for RX\n”)

Print6(7,3,” Network beigin”,1)

EVB_LED1_ON()

#else

do{

aplJionNetwork()

while(apsBusy()){apsFSM()}

if(aplGetStatus()==WXLPAN_STATUS_SUCCESS){

EVB_LED1_ON()

conPrintROMString(“Network Join successded!\n”)

conPrintROMString(“My ShortAddress is”)

conPrintUINT16 (aplGetMyShortAddress())

conPCRLF()

conPrintROMString(“Parent LADDR:”)

conPrintLADDR(“aplGetMyShortAddress”)

conPrintROMString(“,Parent SADDR:”)

conPrintUINT16 (aplGetMyShortAddress())

conPCRLF()

break

}

else{

conPrintROMString(“Network Join FAILED! Waiting,then trying again\n”

my_timer=halGetMACTimer()

//wait for 2 seconds

While((halMACTimerNowDelta(my_timer))

}

} while(1)

#endif

#ifdef WXLPAN_COORDINATOR

aplSetMacMaxFrameRetries(0)

while(1){

apsFSM()

}

#endif

#ifdef WXLPAN_RFD

dstADDR.saddr=0

ppState=PP_STATE_SEND

aplSetMacMaxFrameRetries(0)

while(1){

SendData(0

}

#Endif

#ifdef WXLPAN_ROUTER

DEBUG_PRINTNEIGHBORS(DBG_INFO)

conPritROMString(“Router,doing its thing.!\n”)

while(1){

apsFSM()

}

#endif

}

3.6 本章小结:

主要介绍了无线通信各方式的对比分析,Zigbee技术的简析,Zigbee网络的分析,整个Zigbee网络的构成,RFD终端节点以及协调器设备的流程图设计,部分主要代码的介绍。

第四章基于决策树算法的客户端软件设计

本系统在客户端及服务器端软件的功能需求:用户电脑客户端软件为基于决策树ID3算法的智能医疗软件,主要功能为提供一些心悸、胸闷、手指麻木和疼痛、肌肉酸痛、年龄、身高体重、有无以往病史等医学选项供用户选择,辅以医学数据采集工具采集到的生理数据,智能判断用户身体情况,然后作出相应的诊断医疗建议。医疗中心服务器端软件为基于模糊算法的辅助监控软件,其主要功能为监控用户的身体状况,将最最危急的用户,优先提供给医务人员。

4.1决策树算法简介:

决策树算法的研究开始于60年代到70年代之间,最早由罗斯为了优化了决策树的整体构造,于是提出了决策树ID3算法,主要是通过牺牲研究叶子数目的代价换来的决策树的优化,然后针对决策树ID3算法的不足,应运而生的C4.5决策树算法,它是基于决策树ID3算法的改进,主要改进的决策树剪枝技术,导出的规则等等,不仅适用于分类问题,而且对于回归问题。

决策树算法主要是对所选数据进行归类,通过逼近离散函数来实现。主要的流程为通过对所提供的数据进行分类归纳,整理出适合的规则和计算出对应的决策树,然后再通过所建立的决策树对新得到的数据分析,同时也将新数据的规则融入到决策树中。也就是说决策树就是通过归纳的规则来对数据分类。

4.2决策树算法分类及分析

典型的决策树算法是ID3C4.5CART等。

4.2.1决策树ID3算法简介

起源于概念学习系统CLS。决策树ID3算法从信息论中引入了信息增益,用它来作为建立决策树的度量。以信息熵的大小来选取所得数据的测试属性,将测试属性作为整个决策树的根节点,然后依次计算子节点。

4.2.2决策树ID3算法的基本规则

首先创建一个节点,判断样本是否属于一个类别,相同则停止不同则继续。然后标记这个节点,将该节点标记为树叶节点,并且标记该类节点。

通过公式来计算所有属性的信息熵等,筛选哪个属性为最适合作为该决策树的测试属性,通过该测试属性对训练集进行归类

计算测试属性中的其他值对应的信息熵及信息期望,梳理构建树的分支,将相同的样本数据归为一类。

依照以上的规则过程,从上至下进行递推,同如下几个条件进行对比,如果满足任何一个条件,那么递推就停止,(1.样本属性全部相同2.归类后的样本属性相同3.所有的样本都被归类完毕)。

决策树ID3算法的优点:

(1) 清晰的理论,简单的算法,有良好的研究经验,及成功的研究事例。

(2) 预测的规则准确率精度较高

决策树ID3算法的缺点:

(1) 存在研究偏向问题,每个特征属性的取值个数会相互影响,造成信息量的偏差。

(2) 每个特征属性间的关联性比较差,是单变元算法。

(3) 鲁棒性;数据的微小的错误就会导致不同的结果。

决策树C4.5算法的优点:

(1) 产生的分类规则易于理解

(2) 规则的准确率较高。

决策树C4.5算法的缺点:

(1) 在树的构造过程中,需要对数据进行多次计算和排序,会导致算法的低效。

(2) 内存程序无法满足大数据的运行

综合分析决策树几种算法的优缺点,根据本软件的功能需求及数据类型,该软件选择决策树ID3算法来处理数据。

4.3医学数据的获取

由于智能医疗软件的功能需求,需要获取以往病人得病的起因(主要是得病的主要因素),病人的病例,及相应的诊断结果和治疗方法。同时还要获得大量的医学保健资料,药物的数据,和养生的保养,饮食,作息等数据。该软件的数据主要通过查阅医学网站获得,其次通过来自医院的同学获得。部分数据如表2所示

2 医学数据表

4.4决策树ID3算法的主要公式

公式(1)为期望信息公式,共有s个数据样本的集合,m个不同值的类别属性,Ci代表不同的类。PiCi中任一样本的概率,Pi=Si/S.假设样本中的某个属性Tt个不同值{T1T2T3,…,Tt}如果T属性通过计算被定为测试属性,然后根据公式(2)分别求出T属性内的子集的信息熵和期望信息的值。公式公式(2)中SmjCi类别中的样本数,其中,为子集的权系数,并且等于T属性中样本的个数和总样本的个数的比值,所求得的熵值越大,分类后的子集误差越大。

T属性分支求得的编码信息为Gain(A)=I(S1,S2,…,Sm)-E(A).Gain(A)为信息增益值,它是通过已知属性T的值,造成熵的期望压缩。

4.5决策树的建立

已知数据如表1.s=20,类别号属性是否高血压有两个不同的值({即是高血压,否高血压}),因此Ci有两个不同类别(C1,C2,C1类别为是高血压C2类别为否高血压。因此S1作为是高血压类别的样本数量S1=9S2作为否高血压类别的样本数量S2=11P1为整体样本内是高血压数量的概率P1=S1/S=9/20P2为整体样本内否高血压数量的概率P2=S2/S=11/20

4.5.1求解样本测试属性

4.5.1.1求解所有样本分类的期望信息:

IS1S2=I9,11

=0.518+0.474=0.992

4.5.1.2求解所有属性的熵:

(1)首先应用期望信息公式求解血压值属性的熵:

血压值属性值为“(<120),(<80)时:S11=0S21=7P11=0P21=1

IS11S21=I0,7

血压值属性值为120-140,80-90时:S12=4S22=4P12=1/2P22=1/2

IS12S22=I4,4

1

血压值属性值为(>140),(>90)时:S13=5S23=0P13=1P23=0

IS13S23=I5,0

如果T样本按照血压值分类,以血压值分类的期望信息求解值为

0.4

按照血压值分类的信息增益求解为:

Gain(血压值)=I(S1,S2)-E(血压值)=0.992-0.4=0.592

(2)求解T样本中年龄属性的熵:

年龄属性值为18岁以下时:S11=2S21=6P11=1/4P21=3/4

IS11S21=I2,6

年龄属性值为“18-40,80-90S12=3S22=4P12=3/7P22=4/7

IS12S22=I3,4

年龄属性值为“40-65时:S13=4S23=1P13=4/5P23=1/5

IS13S23=I4,1

如果T样本按照年龄分类,以年龄分类的求解所得期望信息值:

=0.3244+0.34475+0.1805=0.84965

按照年龄分类的信息增益为:

Gain(年龄)=I(S1,S2)-E(年龄)=0.14235

(3)求解T样本中肥胖属性的熵:

肥胖属性值为时:S11=4S21=6P11=2/5P21=3/5

IS11S21=I4,6

肥胖属性值为时:S12=5S22=5P12=1/2P22=1/2

IS12S22=I5,5

如果T样本按照肥胖属性分类,以肥胖分类的求解所得期望信息值:

=0.5+0.4855=0.9855

按照肥胖分类的信息增益为:

Gain(肥胖)=I(S1,S2)-E(肥胖)=0.0065

(4)求解T样本中头痛,头晕属性的熵:

头痛,头晕属性值为时:S11=8S21=3P11=8/11P21=3/11

IS11S21=I8,3

头痛,头晕属性值为时:S12=8S22=1P12=8/9P22=1/9

IS12S22=I8,1

如果T样本按照头痛,头晕属性分类,以头痛,头晕分类的求解所得期望信息值:

=0.4675+0.2264=0.6939

按照头痛,头晕分类的信息增益为:

Gain(头痛,头晕)=I(S1,S2)-E(头痛,头晕)=0.298(5)求解T样本中肾脏疾病属性的熵:

肾脏疾病属性值为时:S11=5S21=2P11=5/7P21=2/7

IS11S21=I5,2

肾脏疾病属性值为时:S12=4S22=9P12=4/13P22=9/13

IS12S22=I8,1

如果T样本按照肾脏疾病属性分类,以肾脏疾病分类的求解所得期望信息值:

=0.302+0.579=0.8805

按照肾脏疾病分类的信息增益为:

Gain(肾脏疾病)=I(S1,S2)-E(肾脏疾病)=0.112

(6)求解T样本中心悸,胸闷,乏力属性的熵:

心悸,胸闷,乏力属性值为时:S11=5S21=1P11=5/6P21=1/6

IS11S21=I5,1

心悸,胸闷,乏力属性值为时:S12=4S22=10P12=4/14P22=10/14

IS12S22=I4,10

如果T样本按照心悸,胸闷,乏力属性分类,以心悸,胸闷,乏力分类的求解所得期望信息值:

=0.26+0.518=0.778

按照心悸,胸闷,乏力分类的信息增益为:

Gain(心悸,胸闷,乏力)=I(S1,S2)-E(心悸,胸闷,乏力)=0.2142

通过期望信息公示计算T样本中各个属性的期望信息如下:

Gain(血压值)=I(S1,S2)-E(血压值)=0.992-0.4=0.592

Gain(年龄)=I(S1,S2)-E(年龄)=0.14235

Gain(肥胖)=I(S1,S2)-E(肥胖)=0.0065

Gain(头痛,头晕)=I(S1,S2)-E(头痛,头晕)=0.298

Gain(肾脏疾病)=I(S1,S2)-E(肾脏疾病)=0.112

Gain(心悸,胸闷,乏力)=I(S1,S2)-E(心悸,胸闷,乏力)=0.2142

通过对比分析,血压值属性的期望信息最高,第一次划分样本则以血压值属性作为测试属性,以血压值作为决策树的第一个节点,对血压值属性内其他值提出分支,由于血压值属性有三个值,所以将T样本划分为三个样本,如表34,6

4.5.2“血压值属性值为“(<120),(<80)”的分支

3 血压值属性值为“(<120),(<80)”划分的样本区域为:

通过表3可以看出,当血压值属性值为“(<120),(<80)”时,所有的用户都不是高血压用户,所有这部分样本区域类别都为否高血压

决策树在这部分区域都以否高血压标记。

4.5.3“血压值属性值为120-140,80-90的分支

4 血压值属性值为120-140,80-90划分的样本区域为

S1作为是高血压类别的样本数量S1=4S2作为否高血压类别的样本数量S2=4P1为整体样本内是高血压数量的概率P1=S1/S=1/2P2为整体样本内否高血压数量的概率P2=S2/S=1/2

求解所有样本分类的期望信息:

IS1S2=I4,4

=1

(1)求解T2样本中年龄属性的熵:

年龄属性值为18岁以下时:S11=0S21=2P11=0P21=1

IS11S21=I0,2

年龄属性值为18-40,80-90S12=4S22=1P12=4/5P22=1/5

IS12S22=I4,1

年龄属性值为40-65时:S13=0S23=1P13=0P23=1

IS13S23=I0,1

如果T2样本按照年龄分类,以年龄分类的求解所得期望信息值:

=0.451

按照年龄分类的信息增益为:

Gain(年龄)=I(S1,S2)-E(年龄)=0.5487

(2)求解T2样本中肥胖属性的熵:

肥胖属性值为时:S11=3S21=2P11=3/5P21=2/5

IS11S21=I3,2

肥胖属性值为时:S12=1S22=2P12=1/3P22=2/3

IS12S22=I1,2

如果T样本按照肥胖属性分类,以肥胖分类的求解所得期望信息值:

=0.607+0.344=0.951

按照肥胖分类的信息增益为:

Gain(肥胖)=I(S1,S2)-E(肥胖)=0.049

(3)求解T样本中头痛,头晕属性的熵:

头痛,头晕属性值为时:S11=3S21=1P11=3/4P21=1/4

IS11S21=I3,1

头痛,头晕属性值为时:S12=1S22=3P12=1/4P22=3/4

IS12S22=I1,3

如果T样本按照头痛,头晕属性分类,以头痛,头晕分类的求解所得期望信息值:

=0.811

按照头痛,头晕分类的信息增益为:

Gain(头痛,头晕)=I(S1,S2)-E(头痛,头晕)=0.189
(4)求解T样本中肾脏疾病属性的熵:

肾脏疾病属性值为时:S11=3S21=1P11=3/4P21=1/4

IS11S21=I3,1

肾脏疾病属性值为时:S12=1S22=3P12=1/4P22=3/4

IS12S22=I1,3

如果T样本按照肾脏疾病属性分类,以肾脏疾病分类的求解所得期望信息值:

=0.811

按照肾脏疾病分类的信息增益为:

Gain(肾脏疾病)=I(S1,S2)-E(肾脏疾病)= 0.189

(5)求解T样本中心悸,胸闷,乏力属性的熵:

心悸,胸闷,乏力属性值为时:S11=2S21=1P11=2/3P21=1/3

IS11S21=I2,1

心悸,胸闷,乏力属性值为时:S12=2S22=3P12=2/5P22=3/5

IS12S22=I2,3

如果T样本按照心悸,胸闷,乏力属性分类,以心悸,胸闷,乏力分类的求解所得期望信息值:

=0.344+0.607=0.951

按照心悸,胸闷,乏力分类的信息增益为:

Gain(心悸,胸闷,乏力)=I(S1,S2)-E(心悸,胸闷,乏力)=0.049

通过对以上公式的求解得出各个属性值的信息增益如下,

Gain(年龄)=I(S1,S2)-E(年龄)=0.5487

Gain(肥胖)=I(S1,S2)-E(肥胖)=0.049

Gain(头痛,头晕)=I(S1,S2)-E(头痛,头晕)=0.189

Gain(肾脏疾病)=I(S1,S2)-E(肾脏疾病)= 0.189

Gain(心悸,胸闷,乏力)=I(S1,S2)-E(心悸,胸闷,乏力)=0.049

年龄属性的信息增益值最大,第二次划分样本则以年龄属性作为测试属性,以年龄作为决策树的第二个节点,对年龄属性内其他值提出分支,由于年龄属性有三个值,所以将T2样本划分为三个样本。

年龄属性值为“18岁以下划分,样本类别均为否高血压;以年龄属性值为“40-65”划分,样本类别也均为否高血压,但此分支由于数据不够可能造成错误的风险;以年龄属性值为“18-40划分,如表5

5 年龄属性值为“18-40划分

通过以上原理及求解过程,依次求出表5内的各个属性值的信息增益:

IS1S2=I4,1

=0.722

Gain(肥胖)=I(S1,S2)-E(肥胖)=0.322

Gain(头痛,头晕)=I(S1,S2)-E(头痛,头晕)=0.0732

Gain(肾脏疾病)=I(S1,S2)-E(肾脏疾病)= 0.322

Gain(心悸,胸闷,乏力)=I(S1,S2)-E(心悸,胸闷,乏力)=0.1712

肥胖;肾脏疾病属性的信息增益值相同且最大,第三次划分样本则以肥胖;肾脏疾病属性作为测试属性。

4.5.4“血压值属性值为“(>140),(>90)”的分支

6 血压值属性值为(>140),(>90)划分的样本区域

通过表6可以看出,当血压值属性值为“(>140),(>90)”时,所有的用户都是高血压用户,所有这部分样本区域类别都为是高血压

决策树在这部分区域都以是高血压标记。

4.6最终构造的决策树

通过以上计算过程分别求出了各个样本的测试属性,各属性值的信息增益,由此得出了最终的决策树构造。如图13

13 最终的决策树构造

4.7 决策树分类规则

通过已知决策树,设置分类规则

if (血压值is “<120,<80”) then (诊断结果 is “否高血压”)

if (血压值is “120-140,80-90”) and (年龄is “18岁以下”) then (诊断结果 is “否高血压”)

if (血压值is “120-140,80-90”) and (年龄is “40-65”) then (诊断结果 is “否高血压”)

if (血压值is “120-140,80-90”) and (年龄is “18-40”) and (肥胖is “”)then (诊断结果 is “是高血压”)

if (血压值is “120-140,80-90”) and (年龄is “18-40”) and (肥胖is “”)then (诊断结果 is “是高血压”)

if (血压值is “120-140,80-90”) and (年龄is “18-40”) and (肥胖is “”)then (诊断结果 is “否高血压”)

if (血压值is “120-140,80-90”) and (年龄is “18-40”) and (肾脏疾病is “”)then (诊断结果 is “是高血压”)

if (血压值is “120-140,80-90”) and (年龄is “18-40”) and (肾脏疾病is “”)then (诊断结果 is “否高血压”)

if (血压值is “>140,>90”) then (诊断结果 is “否高血压”)

if(诊断结果 is “是高血压”) then(诊断结果 is “您为高血压患者,要保持合理乐观的心态服用降压类药物,合理改善饮食,少吃盐多补充钾元素,少吃油腻的食品,不吸烟少饮酒,定期检查自己的血压值”)

if(诊断结果 is “是高血压”) and (肾脏疾病is “”) then(诊断结果 is “您的高血压是由于肾脏疾病造成的,平时要多注意以下几点,(1)减少蛋制品的摄入,因为由于肾脏疾病造成肾功能下降,蛋制品会产生更不多不能排出的尿素;(2)减少豆制品的摄食;(3)要经常测量自己的血压值,时刻掌握自己的身体状态。(4)服用降压类药物”)

if(诊断结果 is “是高血压”) and (肥胖is “”) then(诊断结果 is“您的高血压是由于脂肪过多造成的,平时要注意以下几点,(1)控制饮食,多吃芹菜类高纤维的蔬菜,少吃主食;(2)增加平时的运动量,消耗掉身体过多的脂肪;(3)服用降压类药物”)

if(诊断结果 is “是高血压”) and (心悸、胸闷、乏力is “”) then(“您的高血压是由于心悸、胸闷、乏力造成的,在生活中您要减少不必要的剧烈活动,维持精神状态的稳定性,注意一下药物的服用某些药物可能造成该影响,适当服用降压类药物,少吃盐多补充钾元素,少吃油腻的食品,不吸烟少饮酒,定期检查自己的血压值。”)

if(诊断结果 is “否高血压”) then(诊断结果 is “您好,您的血压正常,掌握以下几点有助于预防高血压:1.饮食要注意(1.低盐量:通过大量的数据证明,平时所吃食物中的盐含量越高,越容易得高血压;(2.适当的增加钾元素的摄入量;(3.增加钙元素的摄入量,人体内的钙元素每天都在流失,如果没有适当的补充,很有可能会造成高血压;(4.控制高脂肪食物的摄入量,大量的脂肪会造成人体血管内皮细胞的变化,增加高血压的发病率;(5.适当的饮酒:大量的饮酒会引起血管的收缩造成血压增加,反之少量的饮酒会扩张血管减小血压值。2.坚持多运动,以便增加身体的血液循环新陈代谢。3.保持乐观的心理状态。”)

该决策树的规则主要分为两步:第一步为先通过已知构建的决策树,制定判断是否为高血压的规则;第二步为通过判断的是否为高血压的结果,筛选造成该结果的主要因素,然后给出合理的治疗改善建议。

4.8软件界面的设计

该智能医疗软件是通过c#语言在微软VS2010的窗体应用程序平台上编写的,主要功能界面如图14

14 智能医疗软件界面

首先在操作界面,该智能软件先获取到用户上传到电脑上的生理信息,然后左边给予用户一些生理选项,如年龄,身高,体重,肾脏疾病等,该类选项内均包含不同情况的子集,用户可根据自身的不同情况进行选择,然后再一切勾选完毕后,通过点击诊断按钮,该软件便会根据一系列已知输入的规则进行智能诊断。

4.9本章小结:

主要介绍了决策树ID3算法的简析,决策树ID3算法与生理数据的融合以及相关数据的计算,基于计算所得的规则智能医疗软件设计。由于获取的数据数量不够,可能造成部分情况的缺失部分诊断不够准确,在以后的工作中要收集更多的病历资料来完善智能医疗软件的准确性。

第五章监控软件及数据库的设计

功能需求:家庭用户上传的数据进行保存,通过模糊控制算法与用户生理数据相结合,判断每个用户的状态,并以最危险的用户作为优先显示,然后由医务人员通过用户的联系方式进行诊断治疗。

5.1模糊控制算法简介

在现实生活中,有许多领域没有准确不变的规则,不是能用标准的数学量来规定的,于是模糊控制应运而生。模糊控制总的来说是一种智能控制,将模糊的理论,模糊的变量,模糊的规则融合在一起应用到控制系统中,以此达到一个类似人的思维模式的规则,如模糊控制的应用实例已有很多,主要通过偏低,低,高,偏高等等的描述语言,辅以人为的语言描述,形成一系列的判断语句即if…and..then…, if…and..then…等,从而达到对控制系统的简化。

5.1.1模糊控制系统的主要构架

定义变量:针对要解决的问题,设定相应的输入变量,误差变量,控制变量,模糊变量;

模糊化:设定对应的论域值,通过自然语言叙述工作过程,给出对应的隶属度值。知识库:主要由规则库与数据库组成,规则库通过一系列的条件语句制定相应的规则,数据库主要负责处理模糊数据;

逻辑判断:结合模糊理论及逻辑基础,形成类似人类的思维逻辑来处理问题;

模糊化:将模糊的规则明确化来处理问题。

5.1.2模糊控制的特点

1)将复杂的控制问题简便化,在无规则、变化率高的问题上有着广泛的应用;

2)用自然语言描述规则代替标准的数学计算解决问题;

3)由于是人为描述规则,所以容易制定规则,有着较强的容错性。

5.2监控软件的设计思路

人体的正常血压值为收缩压(90120)毫M汞柱,舒张压(6090)毫M汞柱。由于种种因素,人体的正常血压值会有相应的差别。监控软件从医疗中心端的数据库中调取用户上传的生理数据,数据主要包括:1.记录用户本次上传的血压值;2.调取用户本次上传的数据前15天内所上传的所有生理数据,除以该时间段内的总条数,取用户前15天内的平均血压值;3.计算用户本次测量值与前15天平均值的差异程度,即(测量值与平均值差的绝对值)/(平均值);4.用户电脑客户端智能医疗软件的医疗诊断结果和用户的生理选项数据。通过将以上4条数据进行分析,用语言来描述相应的病情等级,判断用户需要治疗的程度。

1.用户本次上传的血压值

论域A1代表用户本次上传的血压值的论域:A1{(L),正常(N),偏高(LH),高(H)},

A(x )=表示用户本次上传的血压值的隶属函数,x代表本次上传的血压值(收缩压,舒张压)。当 x=<90<60)时,本次上传的血压值的模糊子集为低;当x=(90-120 ,60-80)时,本次上传的血压值的模糊子集为正常;当x=(120-140 ,80-90) 时,本次上传的血压值的模糊子集为偏高;当x=(>140 ,>90) , 本次上传的血压值的模糊子集为高。

2. 15天内的平均血压值

论域A2代表用户前15天内的平均血压值的论域:A2{(L),正常(N),偏高(LH),高(H)},A(x )=表示用户前15天内的平均血压值的隶属函数,x代表前15天内的平均血压值(收缩压,舒张压)。当 x=<90<60)时,前15天内平均血压值的模糊子集为低;当x=(90-120 ,60-80) 时,前15天内平均血压值的模糊子集为正常;当x=(120-140 ,80-90) 时,前15天内平均血压值的模糊子集为偏高;当x=(>140 ,>90) , 15天内平均血压值的模糊子集为高。

3. 用户本次测量值与前15天平均值的差异程度

论域A3代表用户本次测量值与前15天平均值的差异程度的论域:A3{降低(Re),轻微降低(LRe),轻微升高(LRi),升高(Ri)}A(x )=表示用户本次测量值与前15天平均值的差异程度的隶属函数,x代表前用户本次测量值与前15天平均值的差异程度。当 x=-10%-5%之间)时,前15天内平均血压值的模糊子集为降低;当x=(-5%0%) 时,前15天内平均血压值的模糊子集为轻微降低;当x=(0%5%之间) 时,前15天内平均血压值的模糊子集为轻微升高;当x=(5%以上) , 15天内平均血压值的模糊子集为升高。

4. 用户电脑客户端智能医疗软件的医疗诊断结果

论域A4代表用户电脑客户端智能医疗软件的医疗诊断结果的论域:A4{是高血压(Yes),否高血压(No)}A(x)=表示用户电脑客户端智能医疗软件的医疗诊断结果的隶属函数,x代表用户电脑客户端智能医疗软件的医疗诊断结果。当 x=是高血压)时,用户电脑客户端智能医疗软件的医疗诊断结果的模糊子集为是高血压 ;当x=(“否高血压”) 时,用户电脑客户端智能医疗软件的医疗诊断结果的模糊子集为是否血压。

5.用户需要治疗的优先等级

论域A5代表用户需要治疗的优先等级的论域:A5{状态正常(NHp),需治疗(Hp),急需治疗(FHp)}

5.3解决问题的模糊规则

5.3.1模糊控制规则的表达方式

模糊控制规则的表达方式主要有两种:

1)以状态来描述规则的方式(state evaluation),该方式在模糊类问题中是应用最多的方式,它通过模拟人的思维模式来解决问题,规则方式如下:

第一种方式:If (s1 is M1) and (s2 is M2)... and (sn is Mn)

then z is Y.

规则中的s1,s2,...,snz都是系统变量,;M1, M2,...,MnY为系统各变量的值。

第二种方式:If (s1 is M1) and (s2 is M2)... and (sn is Mn)

then z=b1(s1,s2,...,sn).

2)以目标来描述规则的方式(object evaluation),该方式能够预先判断目标信号,规则方式如下:

if(s is Mn→(l is k1 and j is k1))then z is Y.

本课题解决问题的规则选用以状态来描述规则的方式的第一种。

A1{(L),正常(N),偏高(LH),高(H)} A1{(L),正常(N),偏高(LH),高(H)}

A3{降低(Re),轻微降低(LRe),轻微升高(LRi),升高(Ri)}A4{是高血压(Yes),否高血压(No)} A5{状态正常(NHp),需治疗(Hp),急需治疗(FHp)}

1. if (本次上传血压值 is L) and (15天平均血压 is L) and (差异程度 is Re) and (智能医疗软件诊断结果 is NO) then (治疗优先等级 is NHp)

2. if (本次上传血压值is L) and (15天平均血压is L) and (差异程度is LRE) and (智能医疗软件诊断结果is NO) then (治疗优先等级is NHp)

3. if (本次上传血压值is L) and (15天平均血压is L) and (差异程度is LRi) and (智能医疗软件诊断结果is NO) then (治疗优先等级is NHp)

4. if (本次上传血压值is N) and (15天平均血压is N) and (差异程度is LRe) and (智能医疗软件诊断结果is NO) then (治疗优先等级is NHp)

5. if (本次上传血压值is LH) and (15天平均血压is N) and (差异程度is LRi) and (智能医疗软件诊断结果is YES)then (治疗优先等级is Hp)

6. if (本次上传血压值is N) and (15天平均血压is LJ) and (差异程度is Re) and (智能医疗软件诊断结果is NO)then (治疗优先等级is NHp)

7. if (本次上传血压值is LH) and (15天平均血压is LH) and (差异程度is LRe) and (智能医疗软件诊断结果is YES)then (治疗优先等级is Hp)

8. if (本次上传血压值is H) and (15天平均血压is N) and (差异程度is Ri) and (智能医疗软件诊断结果is YES) then (治疗优先等级is FHp)

9. if (本次上传血压值is H) and (15天平均血压is H) and (差异程度is LRi) and (智能医疗软件诊断结果is YES) then (治疗优先等级is FHp)

10. if (本次上传血压值is LH) and (15天平均血压is H) and (差异程度is Re) and (智能医疗软件诊断结果is NO) then (治疗优先等级is Hp)

.

.

.

5.4 监控软件的界面设计

该应用于医疗中心端的监控软件是通过c#语言来编写的,根据微软的 winform平台.

15 用户监视软件工作界面

“+刷新按钮

软件通过模糊控制算法分析用户的身体状况,将一段时间内上传数据的用户进行分类(急需治疗,需治疗,不需治疗),且每隔一段时间统计一次上传数据的用户;优先解决当前时间段的用户,下一个时间段等待第一个时间段的用户治疗完毕,(但是如果有需要紧急治疗的用户出现,在上一个时段用户未治疗完时,特许进入该时段排在急需治疗的用户中治疗。)

医护人员通过点击排序中的用户的姓名,可以在左方显示该用户的姓名、联系方式当前测量值、前15内测量值,当前测量值与前15测量值的变化程度。然后根据自己的经验联系用户进行合理的诊断治疗。医疗人员还可以通过点击用户搜索按钮来选择以往需要连续观察检测的用户。

5.5 客户端与医疗中心端数据库的设计

5.5.1数据简介及选择

数据库,不言而喻就是提供数据存储及操作的容器。数据库经过长时间的改革与创新,由简单的表格数据存储,发展到了大数据轻松存储的数据库系统。任一时刻用户可通过数据库进行对数据的存储、修改、删减、统计等设置,增加了用户的工作灵活性,而且在工作上用户对数据各种需求的工作效率有显著的提高。

数据库经过不同技术的融合,逐渐发展出了许多不同的软件,主要包括3大类:

1.数据存储类型大的数据库:Oracle,DB2

2.数据存储类型中等的数据库:SQL Server

3.数据存储类型较小的数据库:MySQL

该系统中两端数据库主要负责存储用户上传的生理数据,提供医疗人员查看及操作数据的医疗中心端数据库,和提供用户查看和操作自身过往数据的客户端数据库。通过对比各类数据的优缺点,本课题选择SQL Server负责该系统数据的存储,主要是考虑到1. 用户中的计算机普通使用windows操作系统,而SQL Server作为Microsoft公司开发的软件具有良好的相容性;2.使用价格便宜同时有免费版提供使用;3.本系统客户端与医疗中心端的通信选用C/S模式,SQL Server可以提供各种应用支持。

5.5.2SQL Server常用的命令

1. select * from book where 字段=内容;查询数据的命令

2. insert into bookn(book1,field2,....) Values (’name’, ’id’, ’.... ’) 添加记录据的命令

3. rs.addnewrs("field1").value=value1rs("field2").value=value2...rs.update Addnew插入数据的命令

4. update table set name=’licheng’,age=’18’,...where id=’238’ 修改或者更新数据的命令

5.delete table where name=‘李程程删除数据的命令

5.5.3客户端数据库表的设计

通过SQL sever 2005软件来编写医学数据库,用来反馈给用户。客户端的数据库,主要是保存用户的各种资料,将每一次数据记录编号作为主键,将用户名,年龄,性别,住址,当前测量的血压值,体温值,智能诊断结果,诊断时间等数据录入。

7 客户端数据库表结构的设计

5.5.4医疗中心端数据库表的设计

通过SQL sever 2005软件来编写医学数据库,用来反馈给用户。医疗中心的数据库,主要是保存不同用户上传的各种资料,将每一次数据记录编号并作为主键,将用户名,年龄,性别,住址,当前测量的血压值,体温值,智能诊断结果,诊断时间等数据录入。

8 医疗中心数据库表结构的设计

5.5.5.两端数据库的同步处理

在客户端建立的数据库,考虑到由于用户的操作错误导致一些异常数据被上传到服务器数据库,包括在身高,体重,头晕等选项数据上的错误选择,用户可以在本地数据库中进行修改,然而服务器端的数据库的错误数据则不能修改。于是需要对两端数据库进行同步处理。将客户端修改过的数据库中的正确数据,发送给服务器端的数据库。

主要有以下三种方法1.发布订阅的方法2数据库镜像的方法3自己写job,通过链接式服务器访问数据。通过学习和查阅相关资料,选择了链接式服务器的方法,主要的方法如下。

User ID(用户标识) Time(数据添加到表的时间) Other(其他列)

--A表新添加的数据导入远程B A表所在数据库描述为本地

//-------------新增

本地配置表1 lastTime值(存储A表最后同步时间)

获取lastTime

insert openrowset( 'SQLOLEDB ', 'sql服务器名 ' '用户名 ' '密码 ',数据库名.dbo.User)

select *from 本地表 where Time>lastTime

更新当前时间到配置表1 lastTime

//-------------更新

--更新远程B

update a

set b.Other=a.Other , b.Other1 = a.Other1

from User a

join openrowset( 'SQLOLEDB ', 'sql服务器名 ' '用户名 ' '密码 ',数据库名.dbo.User)as b inner

on a.ID=b.ID

5.6本章小结

主要介绍了模糊控制算法简析,模糊控制算法如何制定规则,用户的需治疗程度的分类与模糊控制算法的结合,基于所得规则完成监控软件的设计,通过sql server 2005编写两端数据库,研究了如何将用户修改的自己数据同步到服务器端数据库。

第六章用户电脑与医疗中心的数据通讯

本课题用户电脑端与医疗中心服务器端之间是通过Internet网进行数据传输的。在用户电脑端有一套智能医疗软件,它将用户的生理信息数据通过Internet网发送到医疗中心的服务器端,然后将数据存放在后台数据库。于是考虑到本课题的情况选择C/S模式。

6.1 C/S模式简介

C/S模式是一种经典两层架构模式,显而易CClient的简写代表着客户端而SServer的简写代表着服务器端,客户端一般在需要使用该软件的用户电脑上,而服务器端一般都由控制中心控制,其主要有两种模式,一种模式为远程数据库作为服务器端,客户端通过本地的数据库与服务器端的数据库进行数据的通信;另一种模式为基于socket的服务器端,服务器端通过socket程序与客户端的程序通信。

本课题选择第二种基于socket的服务器端模式来设计。

C/S模式的主要工作由客户端负责,也就是说客户端要负责满足用户的各种功能需求及UI等显示,所以客户端的工作载荷要大的多,绝大数的算法,判断依据,逻辑等都要在它里面实现,它的持久化数据保存主要是通过SQL或者存储过程来实现的。

6.1.1 C/S模式的特点

C/S模式的优点

1.C/S模式的操作界面可以满足多样化设计,包括各种功能。

2.安全性能高,可以得到有效的保障

3.有着单一的交互方式,响应速度比较快,

4.服务器端可以有较小的运行压力。

C/S模式的缺点

(1).应用范围小。

(2).推广较慢,由于应用该模式必须要安装客户端,造成不是很方便。

(3).维护成本高,每一次更新变动,都要对客户端的程序进行维护。

6.2 TCP/IP的理解

在编程的实现上, 大多数都是基于TCP/IP网络的。TCP/IP协议的创立主要是为了将不同电子设备之间通过网络连接起来,它规定一些通用的内容来允许设备之间可以相互通信,它虽然叫TCP/IP协议单它并不是一个协议而是由多种协议组成,包括IP协议、TCP协议、http协议、IMCP协议、ftp协议等等。

6.2.1 TCP/IP协议构架

TCP/IP协议构架共分为五个层次,它的层次结构非常像协议栈结构,由上至下分别为{应用层(Application),传输层(Transport),网络层(Internet),数据链路层(Network Interface),硬件层(Hardware},如图16

16 TCP/IP协议构架

应用层里主要包括一些我们常见的协议,像http协议,ftp协议,DNS协议等,而且还提供了一些简单的应用如电子邮件等;第二层传输层,著名的TCPUDP协议就在这个层次(一些单机游戏就是通过UDP协议实现连接对战的),该层提供了端对端借口保证了传输的可靠性;第三层网络层,IP协议就存在于该层中,该层的重要工作为通过将不同的数据赋予对应的IP地址和一些其他的数据的方式,来保证传输目标的准确性;第四层数据链路层,该层次的主要功能为将一个以太网协议头赋予需要发送的数据,通过CRC编码,保证数据可以正常的传输,同时该层还具有检测错误的功能;接下来就是硬件层次了,该层区别于以上四层,它几乎不参与到TCP/IP协议的编写中,但它的功能不能代替,它负责了网络的传输。

6.3 socket简析

Socket几乎应用在所有的网络编程上,那么Socket到底是怎么存在的呢,它实际上就是一组借口,存在于TCP/IP协议族中运输层与应用层之间,如图17。它属于整合了多样的TCP/IP协议族,使人们在通信的时候不用再去理解各种协议,只是通过Socket这个接口来交流数据。

17 Socket位置结构

Socket的工作原理:首先分为客户端与服务器端,服务器端先对Socket进行初始化处理,接着绑定端口并进行监听处理,然后调用accept阻塞后,服务器端就可以供客户端连接访问了。客户端如果需要与服务器端通信,首先也要对Socket进行初始化处理,接着就可以与服务器端进行通信了,如果建立连接成功就可以相互之间数据交流,由客户端向服务器端发送数据,服务器端在接收到数据后向客户端反馈信息,客户端显示服务器端反馈的信息,如果通信结束关闭连接即可,具体流程如图18所示

18 Socket的工作流程

6.4客户端Socket主要代码

public partial class Formbtn : Form

{

Socket s = null

IPEndPoint iep = null

byte[] buf = new byte[1024]

public Formbtn()

{

InitializeComponent()

Control.CheckForIllegalCrossThreadCalls = false

}

private void buttoncn1_Click(object sender,EventArgs e)

{

s = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp)

iep = new IPEndPoint(IPAddress.Parse("127.1.1.1"),10000)

try

{

s.Connect(iep)

this.labelcn1.Text = "connection success"

this.buttoncn1.Visable =false}

catch

{ throw

}

}

private void buttoncn2_Click(object sender, EventArgs e)

{

string context = iep.ToString() + ":" +textboxcn2.Text.Trim()

if(context != "")

{

this.textboxcn1.Text += Environment.NewLine

this.textboxcn1.Text += context

this.tetxboxcn2.Text =""

s.Send(Encoding.GetEncoding("ready to community").GetBytes(context))

try

{

s.BeginReceive(buf,0,buf.Length,Socket.Flogs.None, new AsyncCallback(Receive),s)

}

catch

{ throw }

}

}

void Receive(IAsynvResult ia)

{

s = ia.AsyncState as Socket

int count = s.EndReceive(ia)

s.BeginReceive(buf,0,buf.Length,Socket.Flogs.None, new AsyncCallback(Receive),s)

string context =Encoding.GetEncoding("ready to community ").GetString(buf,0,count)

this.textbox1.Text += Environment.NewLine

this.textbox1.Text += context

}

}

6.5服务器端Socket主要代码

public partial class Formser : Form

{

Socket s = null

IPEndPoint iep = null

byte[] buf = new byte[1024]

Socket worker = null

public Formser()

{

InitializeComponent()

Control.CheckForIllegalCrossThreadCalls = false

}

private void button1_Click(object sender,EventArgs e)

{

//创建一个通道

s = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp)

//创建一个侦听点

iep = new IPEndPoint(IPAddress.Any,20000)

//绑定到通道上

s.Bind(iep)

//侦听

s.Listen(6)

//通过异步来处理

s.BeginAccept(new AsyncCallback(Accept),s)

this.button1.Visable = false

}

void Accept(IAsyncResult ia)

{

s = ia.AsyncState as Socket

worker = s.EndAccept()

s.BeginAccept(new AsyncCallback(Accept),s)

try

{

worker.BeginReceive(buf,0,buf.Length,Socket.Flogs.None, new AsyncCallback(Receive),worker)

}

catch

{ throw }

}

void Receive(IAsyncResult ia)

{

worker = ia.AsyncState as Socket

int count =worker.EndReceive(ia)

worker.BeginReceive(buf,0,buf.Length,Socket.Flogs.None,new AsyncCallback(Receive),worker)

string context = Encoding.GetEncoding("ready to community ").GetString(buf,0,count)

this.textbox1.text += Environment.NewLine

this.textbox1.text += context

}

private void button2_Click(object sender, EventArgs e)

{

string context ="XXXXX" + this.textbox2.Text.Trim()

if(context != "")

{

this.textbox1.Text += Environment.NewLine

this.textbox1.Text += context

this.textbox2.Text = ""

worker.Send(Encoding.GetEncoding("ready to community").GetBytes(context))

}

}

}

6.6本章小结:

通过了解C/S模式的主要框架及原理内容,搭建该课题的用户电脑部分与客户端部分通信的主要框架,学习TCP/IP协议族的相关内容,掌握各协议所处各层次的具体位置,了解Socket通信的基本原理,学习成功的通信事例,完成基于Socket的两端的程序设计。

第七章课题总结及预期

本课题根据家庭远程医疗监控系统的已知发展,提出了一些自己的观点,在家庭智能医疗方面做出了相应的研究与设计。本课题融合了Zigbee技术,基于决策树ID3算法的智能医疗技术,模糊控制算法的监控软件技术,Socket通信技术,数据库技术等技术,完成了家庭远程医疗监控系统的整体搭建。主要工作如下:

(1)Zigbee技术的基础上,以CC2530芯片为核心搭建了可采集医学生理信息数据的硬件平台。

2基于决策树ID3算法综合分析用户的生理数据及用户自我选择的身体状况,完成了智能医疗软件的设计与编写。

3)基于模糊控制算法的来分类上传数据用户的治疗需要等级,编写了辅助医疗人员工作的监控软件。

4)以sql server2005为软件平台编写了用户端及医疗中心端的数据库,用来存储用户的生理数据。

5)以Socket通信技术为基础完成了客户端与服务器端的通信。

家庭远程医疗监控系统在当前的生活中越来越得到国家的重视,各种新技术的开发也会对该系统的发展有着非常重要的作用。本课题的研究提出了自己的见解,也存在着不足,在硬件平台上可供用户使用的医学数据采集工具不多;虽提出了对家庭智能医疗的研究,并根据相关的数据设计了智能医疗软件,但限制于得到用户的生理数据不多,不能更加准确的定位用户的身体状况。考虑到我国人口的逐渐增加而医疗资源停滞不前,当前的家庭远程医疗监控系统虽然能减少医院的压力,但医护人员的数量依然不足以11的方式提供治疗,所以智能医疗会有很大的发展前景,好的医生是通过一点一滴的医疗经验积累起来的,相信有了更先进的技术辅以大量的病例数据,智能医疗会发挥很大的作用。

致谢

经过一年的努力,毕业论文已经达到了收尾阶段,在整个工作的最后时刻,我要感谢那些无私帮助我的老师,同学以及同事,谢谢你们。

首先要感谢我的导师郭培源老师。在刚刚入学的时候,郭老师就为我们的研究生生涯提出了一些宝贵的意见,给我们分析在研究生的各阶段要怎么学习,着重注意要根据个人的不同情况提高哪些方面,给我们讲了以后工作中什么是能用上的,特别提醒了我们几个本校的学生要摒弃本科时的宽松节奏。

在真正进入研究生阶段的时期,郭老师不仅通过授课交给我们专业知识,在课下也经常每隔一段时间就组织我们开会,总结一下我们该阶段的成果,交待下一阶段的任务,同时在我的课题上郭老师也给予了很大的帮助,包括提供给我多个不同课题的选择,对应课题的资料,整体系统的大概讲解以及参考。郭老师是一个很慈祥的老师,对我们从来都是笑呵呵的,不仅不关心我们的学习,也关心我们的生活,例如时常组织大家聚餐聊聊各自的生活,解答我们生活中的疑惑与困难,(男女朋友也帮忙介绍的)。在这里打心底的感谢郭老师,也祝您身体健康。

然后要感谢我的好同学好朋友赵小龙,叶晓健,李杨,李成。是他们陪着我一起走过研究生的生活,一起解决困难,一起分享喜悦。特别是赵小龙,叶晓健同学在我课题的起初的一些疑问上给了我许多解答,一些我不是很了解的电路知识也都耐心的给我讲解,谢谢你们。

接着要感谢我的同事郭平同学,在公司的闲暇时间,经常为我解答一些数据库的问题,帮助我改善代码的效率,一起探讨两端数据库的同步问题等。

最后要诚挚的感谢评阅老师,希望您对我的论文提出一些宝贵的意见。

参考文献

[1] 李文仲,段朝玉. ZigBee 无线网络技术入门与实战. 北京:北京航空航天大学出版社,2007.

[2] 穆杰,刘玉华.老年保健与家庭远程医疗[J].中国临床保健杂志,2007,10(6):664-665.

[3] 宫廷.我国远程医疗发展现状与趋势探析.青春岁月,2011,18:312-313

[4] 李亚军.远程医疗在国内的应用和发展 医学信息 2006,1 106-108.

[5] 王忠民,王虹.关于远程医疗发展的探讨.中国医学教育技术.2006,20(6)546-548.

[6] 高上凯.浅谈社区医疗保健系统的发展前景[J].计算机工程与应用,2005,4010):30-34.

[7] 黄布毅,张海霞.基于CATV的家庭远程医疗监护系统[J].视频应用与工程,2008,52):80-85.

[8] 冯娟.家用便携式远程医疗监护系统[J].中国科技信息,2009,62):30-35.

[9] 李艳丹.社区医疗网络服务系统的研究和实现[J].现代计算机,2007,76):84-85.

[10] 郑武,金纯.可穿戴式无线网络技术研究及应用[J].微计算机信息,2005,212):108-111.

[11] 解文明,陶立华.从远处医疗信息传输谈下一代远程医疗系统建设[J].医疗卫生装备,20058):12-14.

[12] 寇向晖.基于嵌入式Internet的远程监控系统的设计[D].成都:西南石油大学,2006.

[13] 杨小燕,郭文明,曾海标,等.基于WEBf服务的PACS医生工作站的设计与实现.中山大学学报(自然科学版).2005,S2(44):129-132.

[14] 马保国,钱方正,侯建军,等.基于.NETWeb ServiceSQL Server 2000交互通信的研究.福建电脑.2006,3:1-2.

[15] 何文强,姚丹霖,王新建,等.基于XML的电子病历系统的研究与实现.计算机与信息技术.2005,8:46-48.

[16] 喻学锋,杨宣东,李凯扬,等.一种基于B/S模式的PACS的研究与实现.生物医学工程学杂志.2004213):391-393.

[17] 彭文青.面向家庭的远程健康监护系统探讨[J].医学信息,20071910):165-167.

[18] 胡秉谊,白净.远程医疗系统前端的设计和实现[J].仪器仪表学报,2011,203):235-237.

[19] 鲁为,王枞.决策树算法的优化和比较[J].计算机工程,2007,3316.

[20] 王涛,李舟军.一种高效的数据流挖掘增量模糊决策树分类算法[J].计算机学报,2007,308.

[21] 殷松迁,郭培源,王建华.基于嵌入式及ZigBee技术的居室环境监测系统. [J]电子技术应用,2012,8(38):23-25.

[22] 张国云,马文玲.USB技术分析与应用[J].现代电子技术,2005,18:68-70.

[23] 齐伟,鲁守银,高焕兵.基于家庭主站的远程医疗监护系统[J].电子工程设计,2009,17(11):53-55.

[24] 梁妃学,郭劲松,邓亲恺.面向远程医疗的生理监控系统[J].中国医疗设备,2008,23(6):11-13.

[25] B.Davey,A.Tatnall.Tools for Client Server Computing.Proceedings of the Conference on Software Engineering:Education and Practice.Dunedin,New Zealand,Jan.24-27,1996:280-285.

[26] Y.Ephraim.Citizen health sysem[J].Studies in Health Technology and Informatics,2011,5(3):180-189.

[27] Tang P,Venables T.Homes and telecare for indepengdent living[J],Review of Scientific Instruments,2004,12(5):228-250.

[28] Tao Lin,Hai Zhao,Jiyong Wang.An embedded Web server for equipment[J].Parallel Architectures,Algorithms and Networks.7th International Symposium on 10-12,May,2004:345-350.

[29] Jones III,Beverly N.,Russkin,Paul E, TELECOMMUNICATION in medicineMENTAL health services,GERIATRICS Journal of Geriatric Psychiatry and Neurology,Summer,2001,14(2):1-4.

[30] J.Zhu.Web Services Provide the Power to Integrate.Power and Energy Magazine,IEEE.2003,6(1):40-49.

[31] T.Butan,J.Su,X.Fu.Analyzing Conversations of Web Services.Internet Computing,IEEE.2006,1(10):1-25.

[32] David C,Deborah E,Mani S. Overview of senor network[J]. IEEE Conputer. 2004,37(8):41-49.

[33] Dimitar H S,Zeungnam B,Won-chui B. The smart house for older persons and with physical disabilities structure, technology,arragenem,and perspective[J]. IEEE Trans on Newral System and Rehabilitation Engineering. 2004,12:228-250.

[34] Louis Lareng. Telemedicine in European Journal of Internal Medicine. 2002,13:1-3.

[35] Choi Jinwook,Chun Jonghoon,Lee Kangsun et al. Mobile Nurse:Hand-held information system for point of nursing care. Elsevier Ireland Ltd. 2004,74(3):245-254.

基于嵌入式技术的家庭远程医疗监护系统的方案设计书与实现-修改稿4.10

相关推荐