计算机辅助心音教学系统
作者:邬晓岚 彭承琳
单位:重庆大学 电信学院生物医学工程及仪器教研室,重庆 400044
关键词:计算机辅助教学;心音;数字声音技术;数据库
生物医学工程学杂志990329 摘要 详细阐述了计算机辅助心音教学系统的实现方案。系统以数据库为基础,采用数字声音技术,能逼真地以多种方式播放各种心音,并显示相应的心音图和心音特点说明,克服了传统教学方法的不足。此外,系统还可以对用户的心音听诊能力进行测试。
Computer-aided Teaching system of Heart Sound
Wu Xiaolan Peng Chenglin
(The Institute of Biomedical Engineering and Instrument,Chongqing University,Chongqing 400044)
, 百拇医药
Abstract This paper details a full set of plan of the computer-aided teaching of heart sound. By means of digital sound technology one is capable of playing realistically heart sound of various kinds based on database. Each heart sound is demonstrated by a proper explanation of its characteristics and a heart sound graph. This method gets over the shortages of traditional teaching methods. Besides, this system can be used to test users' level of auscultation.
Key words Computer-aided teaching Heart sound Digital sound technology Database
, 百拇医药
1 引 言
心音是心脏正常的或者病理的音响,它是由于心脏搏动过程中各瓣膜的开闭以及心肌和血液运动所产生的震动形成的。心音听诊是诊断心脏疾病的重要依据,心音听诊向来是诊断学课程最重要的部分之一,医学院校的学生都必须熟练掌握这一基本技能。
传统的心音听诊教学方法是实习法和讲授法。实习法采用听诊器听取病人心音,无法多人同时听取,也难于寻找用来练习听诊的心脏病例,特别是严重心脏病患者不允许学生轮流练习听诊。讲授法一般采用播放心音磁带的方式来进行听诊教学,由于频繁倒带不方便、因此不便于反复听取同一心音,并且磁带磨损也会严重影响听音效果。采用以上两种方法教学时,教师都不便进行示范讲解,学生也很难得到较强的感性认识。由于传统心音听诊教学方法存在着种种不足,开发计算机辅助心音教学系统就成为医学院校的迫切要求。
2 系统设计
2.1 系统功能
, 百拇医药
计算机辅助心音教学系统是医学院校进行心音听诊教学的应用工具。根据对多所医学院校进行的调查反馈,一个比较成熟实用的心音教学系统需要实现以下功能:
(1)心音以波形文件的格式存储于计算机内,同时还需要在计算机中存储相关的心音图和心音知识。用户可以根据需要随时向系统中添加新的心音资料及对原来的心音资料进行修改、删除;
(2)用户可以根据需要任意播放某个心音。系统应当提供多种播放方式供用户选择,如单次放音、循环放音、正常速度放音、慢速放音等;
(3)用户可以设置在播放心音时显示相应的心音图,及在心音播放完成后显示相应心音的特点说明。并且随着播放的进行,系统应当随时在心音图上指示播放的位置;
(4)能够进行心音听诊能力的测试;
(5)用户不需要具备计算机方面的专门知识,只要根据屏幕上的提示就能方便地进行操作。
, 百拇医药
2.2 系统总体结构
为了实现上述功能并使教学系统具有良好的人机界面,系统选用了Windows和Visual Basic 4.0专业版作为开发平台。由于VB提供了大量的控件,而且采用了事件驱动的编程机制,使得我们在进行开发时可以在很短时间内完成程序界面的设计工作,而将主要精力集中到程序核心功能的实现上。
本系统采用下拉式菜单,各级操作均可按照屏幕上的提示信息进行。系统共有五个菜单,分别是“心音听诊训练”、“心音听诊能力测试”、“系统管理”、“帮助”和“退出系统”。用户通过各个菜单即可使用心音教学系统的全部功能。
本系统的菜单结构见图1。
图1 系统菜单
, http://www.100md.com Fig 1 System Menu
为了进一步提高心音教学的效果,用户可以将系统设置为详细教学方式,即播放心音的同时在屏幕上显示相应的心音图,并且可以设置为每播放一个类型的心音后,都在屏幕上显示刚才所播放心音的特点说明。
此外,系统中还设置了两组选项分别供用户进行播放方式和播放速度的选择。播放方式可以选择单次播放和循环播放,而播放速度则可以在正常速度和慢速之间进行选择。选择循环播放时用户可以反复听取所选择的某个心音,从而达到在短时间内熟悉该心音的目的;由于在教学时学生对速率较快的心音往往难于听清,因此系统专门设计了慢速播放的功能,以解决快速心音教学这个使用其它方法难于解决的问题。
为了使系统具有良好的可扩充性,系统使用ACESS数据库来存储心音以及有关心音的各种资料。ACCESS数据库与VB有着良好的接口,并且心音波形文件以及相关的波形图均可以作为“OLE对象”类型的字段存储在数据库中,调用十分方便。用户可以随时向数据库中加入各种新资料,同时对数据库中的资料进行修改和删除也十分方便。
, 百拇医药
本系统所采用的数据库的表结构如表1所示:
表1 数据库表结构
Table 1 Constructure of database 字段名称
数据类型
心音名称(主关键字)
文本
心音特点说明
备注
心音长度
数字(整型)
心音波形数据
, 百拇医药 OLE对象
心音图
OLE对象
由于“心音特点说明”字段内容较多,而文本类型的字段最多只能容纳255个字符(127个汉字),因此该字段只能设置为“备注”数据类型。“心音长度”字段以秒为单位存储心音波形文件的播放时间。而心音波形文件(.WAV)和图形文件(.BMP)则以OLE对象的形式分别存储于“心音波形数据”和“心音图”这两个字段中。需要注意的是,在向OLE对象类型的字段中添加数据时,有两种方式可以选择:嵌入和链接。在设计心音教学系统时,最好是选用嵌入的方式来添加数据,即将所有的数据都集中存放在数据库表中。这样虽然会使数据库变得比较大,但优点也是明显的:数据库中的数据是独立的,对源数据的修改和移动不会影响已经添加到数据库中的数据,这样可以增强系统的稳定性。
在实际使用过程中,用户经常需要对数据库中的数据进行添加、删除和修改工作,为此本系统中特别设计了管理心音数据库的功能。用户不必直接对数据库进行操作,所有的数据库管理工作都可以在系统中直接完成。此外,为了避免用户无意中破坏数据库中的数据,系统还设计了安全机制,要求在对数据库进行操作之前必须输入口令。口令一般由教师或系统维护人员设定,并且可以根据需要随时更改。
, 百拇医药
本系统中实现的心音听诊能力测试功能也是基于数据库的,系统每次从数据库中随机获取一定数量的心音数据生成标准化测试题目,用户可以通过键盘或鼠标选择答案。测试完成后,系统会自动显示该次测试的得分情况。此外,在进行日常测试时,系统还会根据测试情况指出用户在心音听诊能力方面的薄弱环节,便于用户进行有针对性的训练。
3 系统实现过程中解决的几个问题
3.1 心音数据的采集
为了满足教学的需要,心音教学系统中必须存放大量的心音数据,这就需要使用数字声音技术。即先通过声卡将心音这个模拟量通过A/D转换变为一系列的数字量,重放时再通过D/A转换,把数字量转化为可听到的心音信号。A/D转换一般采用采样的方法,决定采样质量的主要参数有三个:采样频率、样本的量化等级以及通道数。在综合考虑采样精度、声源质量及系统资源耗费多种因素后,本系统设置采样方式为:采样频率22 KHz,采样数8位,单声道,心音经A/D转换后以WAV的格式存放于计算机内。
, http://www.100md.com
系统选用医学院校制作的标准心音磁带作为声源,以保证心音数据的质量。为了将磁带上的真实心音转化成标准的波形文件,采用的方法如下:
(1)用信号线将磁带卡座上的Line out插孔与声卡上的Line in插孔连接在一起。
(2)在Windows下运动行波形文件处理软件(如Voyetra软件包),设置好采样频率、采样数和采样声道后,将软件设置为准备录音状态。注意将录音电平设置到适当水平,否则会降低信噪比。
(3)用磁带卡座播放心音磁带,声音信号通过信号线输入到声卡中,经声卡的A/D转换后由软件将其以WAV的文件格式存入硬盘中。
(4)心音采集完成后,将软件设置为编辑状态。打开所需编辑的WAV文件,对波形文件进行剪辑,并根据需要进行信号增强、抑噪、改变采样频率等处理。
, 百拇医药
3.2 心音文件的播放
本系统最重要的功能是根据用户的需要播放心音。由于VB本身没有提供播放波形文件的功能,系统采用了Windows的API函数sndPlaySound。sndPlaySound函数的使用比较简单,虽然此函数对播放的波形文件的大小有限制,一般在100 KB以下,但这对于一个心音波形文件而言已经足够了。通过设置不同的参数,该函数可以实现多种播放方式:
(1)声音同步播放:在播放期间,系统不能执行其他任务。
(2)声音异步播放:系统可以在播放期间执行其他任务。
(3)循环放音:本次播放只有当系统再次调用sndPlaySound函数时才会被终止。
在播放时直接进行播放速度的调整是困难的。为了实现慢速播放心音的功能,最好是采用修改波形文件频率(播放速率)的方法。频率越高,声音播放速度越快;频率越低则声音播放速度越慢。例如,本系统在生成心音波形文件时采用的是22 KHz的采样频率,如果使用编辑软件将原波形文件的频率修改为11 KHz,则可以使播放速率变为原来的1/2,如此即可以方便地实现心音的慢速播放。
, 百拇医药
一般而言,播放波形文件需要声卡的支持。但是为了扩大本教学软件的适用范围,需要寻找在没有声卡的环境中使用计算机的扬声器来播放波形文件的方法。Windows没有提供场声器的驱动程序,因此无法直接使用扬声器来播放波形文件。为了在没有声卡的计算机上实现播放功能,系统设计了一个检测计算机内是否安装了声卡的子程序。若计算机没有安装声卡,则系统将不再使用sndPlaySound函数,转而调用一个驱动扬声器发声的动态链接库(用C++语言编写)来播放心音,限于篇幅,在此不再详述。
3.3 心音图的动态显示
播放心音时,在屏幕上同时显示相应的心音图可以增强用户对各种心音的理解记忆。为了能够随时在心音图上指示当前播放的位置,本系统使用了如下的方法:
(1)从数据库的“心音长度”字段中获得所播放的波形文件的长度;
, 百拇医药 (2)根据波形文件长度和心音图宽度计算出播放指示线每秒移动的距离(为了简化数据库结构及减少编程工作量,本系统采用固定的宽度显示心音图);
(3)使用VB的定时器控件来控制播放指示线的移动速度,这样即可使播放与指示线的指示协调一致。
3.4 动态增减菜单选项
由于系统采用数据库来存储心音及相关数据,并且数据库的数据可以随时添加、删除及修改,这就要求系统在运行时应当根据数据库中的记录,动态增删“心音听诊训练”这个下拉式菜单中的菜单选项。此类菜单的制作不能单靠VB的菜单设计窗口来实现,还需要在程序中设计菜单控制数组,以实现动态加入或删除菜单命令项的功能。具体实现方法如下:
用菜单设计器设计“心音听诊训练”主菜单,然后再设计一个动态调整的子菜单,设置其属性如下:
, 百拇医药 Caption=” ′标题显示为空白
Name=“xinyin”
Index=0
Visible=False ′使其为不可见菜单
Enabled=True
由于菜单设计器要求在子菜单中至少要有一个为可见菜单,为此我们可以设计子菜单的第一项为菜单分隔条,并设置其Visible属性为True,这样不会影响整个菜单的结构。
在系统主窗体的Form_Load()过程中加入下面的程序:
Sub Form_Load()
Dim xyindex as Integer
, 百拇医药
xyindex=0
打开数据库
Do
xyindex=xyindex+1
Load xinyin(xyindex)
查询数据库
xinyin(xyindex).Caption=“心音名称”字段的值
xinyin(xyindex).Visible=True
数据库指针下移一个记录
Loop While未到达数据库的末尾
, http://www.100md.com
End Sub
上面这个过程采用Load语句来动态地将新菜单控制项装入内存控制数组中,并按顺序给出相应的下标值。装入时置子菜单的Visible属性为真,同时根据数据库加“心音名称”字段的值将菜单标题显示在菜单项内。
3.5 在VB中访问数据库的OLE对象字段
本系统所使用的心音波形文件和心音图都是作为OLE对象存放在数据库中的。为了在VB中访问OLE类型的字段,除使用Data控件外,还必须使用OLE Contatiner控件。首先将Data控件捆绑到数据库文件上,然后将OLE Container控件的“DataSource”属性设置为Data控件,“DataField”属性设置为相应的数据库字段(心音波形数据或心音图)。必须注意的是,在调用数据库中的心音图时,不能用图片框或图像框控件来代替OLE Container控件,否则在运行时会出现“数据类型不匹配”或“图像格式不正确”等错误提示,无法正常显示图形。
, http://www.100md.com
4 结束语
心音听诊的教学方法很多,最常见的是讲授法和实习法,其不足之处在引言中已经进行了阐述。为了辅助心音听诊教学,国内外还采用了其它多种方法,但都有各自的不足之处。本文所述的计算机辅助心音教学系统采用数字声音技术,利用声卡(或计算机内部扬声器)来逼真再现真实心音,实现了心音的教学和听诊能力测试功能。它克服了其它方法的缺点,是当前比较完善的一种教学方法。各种教学方法的对比如表2所示:
表2 各种教学法比较表
Table 2 The comparison of various teaching 教学方法
音调
音色
时间和节律
, http://www.100md.com
总的听觉印象
练习机会
其他特点
实习法
真实
真实
真实
真实
不易得到
心率快时不易听清
讲授法
(使用教学磁带)
较真实
, 百拇医药
较真实
真实
真实
易得到
心率快时不易听清,反复听取同一心音时不便于操作
简谱法
不真实
不真实
能粗略表达
不佳
易得到
模拟法
较佳
, http://www.100md.com
较差
较佳
较佳
易得到
某些心音目前难于模拟
计算机辅助心音教学
系统
较真实
较真实
真实
真实
易得到
容易使用,可循环播放和慢速播放,可对用户进行测试
, 百拇医药
参考文献 1 肖守中.计算机模拟心音.中国医学信息大会论文集,1991
2 林 丽,白剑波.精通Visual Basic 3.0 for Windows.北京:人民邮电出版社,1995
3 周衍椒,张镜如.生理学(第三版).北京:人民卫生出版社,1989
4 喻红宇.Windows下声音文件的多种调用播放方法.中国计算机用户.1996;3.4
5 蔡皖东.基于声霸卡的语音I/O汇编语言编程接口.计算机应用研究.1995;1∶25
(收稿:1998-04-10), http://www.100md.com
单位:重庆大学 电信学院生物医学工程及仪器教研室,重庆 400044
关键词:计算机辅助教学;心音;数字声音技术;数据库
生物医学工程学杂志990329 摘要 详细阐述了计算机辅助心音教学系统的实现方案。系统以数据库为基础,采用数字声音技术,能逼真地以多种方式播放各种心音,并显示相应的心音图和心音特点说明,克服了传统教学方法的不足。此外,系统还可以对用户的心音听诊能力进行测试。
Computer-aided Teaching system of Heart Sound
Wu Xiaolan Peng Chenglin
(The Institute of Biomedical Engineering and Instrument,Chongqing University,Chongqing 400044)
, 百拇医药
Abstract This paper details a full set of plan of the computer-aided teaching of heart sound. By means of digital sound technology one is capable of playing realistically heart sound of various kinds based on database. Each heart sound is demonstrated by a proper explanation of its characteristics and a heart sound graph. This method gets over the shortages of traditional teaching methods. Besides, this system can be used to test users' level of auscultation.
Key words Computer-aided teaching Heart sound Digital sound technology Database
, 百拇医药
1 引 言
心音是心脏正常的或者病理的音响,它是由于心脏搏动过程中各瓣膜的开闭以及心肌和血液运动所产生的震动形成的。心音听诊是诊断心脏疾病的重要依据,心音听诊向来是诊断学课程最重要的部分之一,医学院校的学生都必须熟练掌握这一基本技能。
传统的心音听诊教学方法是实习法和讲授法。实习法采用听诊器听取病人心音,无法多人同时听取,也难于寻找用来练习听诊的心脏病例,特别是严重心脏病患者不允许学生轮流练习听诊。讲授法一般采用播放心音磁带的方式来进行听诊教学,由于频繁倒带不方便、因此不便于反复听取同一心音,并且磁带磨损也会严重影响听音效果。采用以上两种方法教学时,教师都不便进行示范讲解,学生也很难得到较强的感性认识。由于传统心音听诊教学方法存在着种种不足,开发计算机辅助心音教学系统就成为医学院校的迫切要求。
2 系统设计
2.1 系统功能
, 百拇医药
计算机辅助心音教学系统是医学院校进行心音听诊教学的应用工具。根据对多所医学院校进行的调查反馈,一个比较成熟实用的心音教学系统需要实现以下功能:
(1)心音以波形文件的格式存储于计算机内,同时还需要在计算机中存储相关的心音图和心音知识。用户可以根据需要随时向系统中添加新的心音资料及对原来的心音资料进行修改、删除;
(2)用户可以根据需要任意播放某个心音。系统应当提供多种播放方式供用户选择,如单次放音、循环放音、正常速度放音、慢速放音等;
(3)用户可以设置在播放心音时显示相应的心音图,及在心音播放完成后显示相应心音的特点说明。并且随着播放的进行,系统应当随时在心音图上指示播放的位置;
(4)能够进行心音听诊能力的测试;
(5)用户不需要具备计算机方面的专门知识,只要根据屏幕上的提示就能方便地进行操作。
, 百拇医药
2.2 系统总体结构
为了实现上述功能并使教学系统具有良好的人机界面,系统选用了Windows和Visual Basic 4.0专业版作为开发平台。由于VB提供了大量的控件,而且采用了事件驱动的编程机制,使得我们在进行开发时可以在很短时间内完成程序界面的设计工作,而将主要精力集中到程序核心功能的实现上。
本系统采用下拉式菜单,各级操作均可按照屏幕上的提示信息进行。系统共有五个菜单,分别是“心音听诊训练”、“心音听诊能力测试”、“系统管理”、“帮助”和“退出系统”。用户通过各个菜单即可使用心音教学系统的全部功能。
本系统的菜单结构见图1。
图1 系统菜单
, http://www.100md.com Fig 1 System Menu
为了进一步提高心音教学的效果,用户可以将系统设置为详细教学方式,即播放心音的同时在屏幕上显示相应的心音图,并且可以设置为每播放一个类型的心音后,都在屏幕上显示刚才所播放心音的特点说明。
此外,系统中还设置了两组选项分别供用户进行播放方式和播放速度的选择。播放方式可以选择单次播放和循环播放,而播放速度则可以在正常速度和慢速之间进行选择。选择循环播放时用户可以反复听取所选择的某个心音,从而达到在短时间内熟悉该心音的目的;由于在教学时学生对速率较快的心音往往难于听清,因此系统专门设计了慢速播放的功能,以解决快速心音教学这个使用其它方法难于解决的问题。
为了使系统具有良好的可扩充性,系统使用ACESS数据库来存储心音以及有关心音的各种资料。ACCESS数据库与VB有着良好的接口,并且心音波形文件以及相关的波形图均可以作为“OLE对象”类型的字段存储在数据库中,调用十分方便。用户可以随时向数据库中加入各种新资料,同时对数据库中的资料进行修改和删除也十分方便。
, 百拇医药
本系统所采用的数据库的表结构如表1所示:
表1 数据库表结构
Table 1 Constructure of database 字段名称
数据类型
心音名称(主关键字)
文本
心音特点说明
备注
心音长度
数字(整型)
心音波形数据
, 百拇医药 OLE对象
心音图
OLE对象
由于“心音特点说明”字段内容较多,而文本类型的字段最多只能容纳255个字符(127个汉字),因此该字段只能设置为“备注”数据类型。“心音长度”字段以秒为单位存储心音波形文件的播放时间。而心音波形文件(.WAV)和图形文件(.BMP)则以OLE对象的形式分别存储于“心音波形数据”和“心音图”这两个字段中。需要注意的是,在向OLE对象类型的字段中添加数据时,有两种方式可以选择:嵌入和链接。在设计心音教学系统时,最好是选用嵌入的方式来添加数据,即将所有的数据都集中存放在数据库表中。这样虽然会使数据库变得比较大,但优点也是明显的:数据库中的数据是独立的,对源数据的修改和移动不会影响已经添加到数据库中的数据,这样可以增强系统的稳定性。
在实际使用过程中,用户经常需要对数据库中的数据进行添加、删除和修改工作,为此本系统中特别设计了管理心音数据库的功能。用户不必直接对数据库进行操作,所有的数据库管理工作都可以在系统中直接完成。此外,为了避免用户无意中破坏数据库中的数据,系统还设计了安全机制,要求在对数据库进行操作之前必须输入口令。口令一般由教师或系统维护人员设定,并且可以根据需要随时更改。
, 百拇医药
本系统中实现的心音听诊能力测试功能也是基于数据库的,系统每次从数据库中随机获取一定数量的心音数据生成标准化测试题目,用户可以通过键盘或鼠标选择答案。测试完成后,系统会自动显示该次测试的得分情况。此外,在进行日常测试时,系统还会根据测试情况指出用户在心音听诊能力方面的薄弱环节,便于用户进行有针对性的训练。
3 系统实现过程中解决的几个问题
3.1 心音数据的采集
为了满足教学的需要,心音教学系统中必须存放大量的心音数据,这就需要使用数字声音技术。即先通过声卡将心音这个模拟量通过A/D转换变为一系列的数字量,重放时再通过D/A转换,把数字量转化为可听到的心音信号。A/D转换一般采用采样的方法,决定采样质量的主要参数有三个:采样频率、样本的量化等级以及通道数。在综合考虑采样精度、声源质量及系统资源耗费多种因素后,本系统设置采样方式为:采样频率22 KHz,采样数8位,单声道,心音经A/D转换后以WAV的格式存放于计算机内。
, http://www.100md.com
系统选用医学院校制作的标准心音磁带作为声源,以保证心音数据的质量。为了将磁带上的真实心音转化成标准的波形文件,采用的方法如下:
(1)用信号线将磁带卡座上的Line out插孔与声卡上的Line in插孔连接在一起。
(2)在Windows下运动行波形文件处理软件(如Voyetra软件包),设置好采样频率、采样数和采样声道后,将软件设置为准备录音状态。注意将录音电平设置到适当水平,否则会降低信噪比。
(3)用磁带卡座播放心音磁带,声音信号通过信号线输入到声卡中,经声卡的A/D转换后由软件将其以WAV的文件格式存入硬盘中。
(4)心音采集完成后,将软件设置为编辑状态。打开所需编辑的WAV文件,对波形文件进行剪辑,并根据需要进行信号增强、抑噪、改变采样频率等处理。
, 百拇医药
3.2 心音文件的播放
本系统最重要的功能是根据用户的需要播放心音。由于VB本身没有提供播放波形文件的功能,系统采用了Windows的API函数sndPlaySound。sndPlaySound函数的使用比较简单,虽然此函数对播放的波形文件的大小有限制,一般在100 KB以下,但这对于一个心音波形文件而言已经足够了。通过设置不同的参数,该函数可以实现多种播放方式:
(1)声音同步播放:在播放期间,系统不能执行其他任务。
(2)声音异步播放:系统可以在播放期间执行其他任务。
(3)循环放音:本次播放只有当系统再次调用sndPlaySound函数时才会被终止。
在播放时直接进行播放速度的调整是困难的。为了实现慢速播放心音的功能,最好是采用修改波形文件频率(播放速率)的方法。频率越高,声音播放速度越快;频率越低则声音播放速度越慢。例如,本系统在生成心音波形文件时采用的是22 KHz的采样频率,如果使用编辑软件将原波形文件的频率修改为11 KHz,则可以使播放速率变为原来的1/2,如此即可以方便地实现心音的慢速播放。
, 百拇医药
一般而言,播放波形文件需要声卡的支持。但是为了扩大本教学软件的适用范围,需要寻找在没有声卡的环境中使用计算机的扬声器来播放波形文件的方法。Windows没有提供场声器的驱动程序,因此无法直接使用扬声器来播放波形文件。为了在没有声卡的计算机上实现播放功能,系统设计了一个检测计算机内是否安装了声卡的子程序。若计算机没有安装声卡,则系统将不再使用sndPlaySound函数,转而调用一个驱动扬声器发声的动态链接库(用C++语言编写)来播放心音,限于篇幅,在此不再详述。
3.3 心音图的动态显示
播放心音时,在屏幕上同时显示相应的心音图可以增强用户对各种心音的理解记忆。为了能够随时在心音图上指示当前播放的位置,本系统使用了如下的方法:
(1)从数据库的“心音长度”字段中获得所播放的波形文件的长度;
, 百拇医药 (2)根据波形文件长度和心音图宽度计算出播放指示线每秒移动的距离(为了简化数据库结构及减少编程工作量,本系统采用固定的宽度显示心音图);
(3)使用VB的定时器控件来控制播放指示线的移动速度,这样即可使播放与指示线的指示协调一致。
3.4 动态增减菜单选项
由于系统采用数据库来存储心音及相关数据,并且数据库的数据可以随时添加、删除及修改,这就要求系统在运行时应当根据数据库中的记录,动态增删“心音听诊训练”这个下拉式菜单中的菜单选项。此类菜单的制作不能单靠VB的菜单设计窗口来实现,还需要在程序中设计菜单控制数组,以实现动态加入或删除菜单命令项的功能。具体实现方法如下:
用菜单设计器设计“心音听诊训练”主菜单,然后再设计一个动态调整的子菜单,设置其属性如下:
, 百拇医药 Caption=” ′标题显示为空白
Name=“xinyin”
Index=0
Visible=False ′使其为不可见菜单
Enabled=True
由于菜单设计器要求在子菜单中至少要有一个为可见菜单,为此我们可以设计子菜单的第一项为菜单分隔条,并设置其Visible属性为True,这样不会影响整个菜单的结构。
在系统主窗体的Form_Load()过程中加入下面的程序:
Sub Form_Load()
Dim xyindex as Integer
, 百拇医药
xyindex=0
打开数据库
Do
xyindex=xyindex+1
Load xinyin(xyindex)
查询数据库
xinyin(xyindex).Caption=“心音名称”字段的值
xinyin(xyindex).Visible=True
数据库指针下移一个记录
Loop While未到达数据库的末尾
, http://www.100md.com
End Sub
上面这个过程采用Load语句来动态地将新菜单控制项装入内存控制数组中,并按顺序给出相应的下标值。装入时置子菜单的Visible属性为真,同时根据数据库加“心音名称”字段的值将菜单标题显示在菜单项内。
3.5 在VB中访问数据库的OLE对象字段
本系统所使用的心音波形文件和心音图都是作为OLE对象存放在数据库中的。为了在VB中访问OLE类型的字段,除使用Data控件外,还必须使用OLE Contatiner控件。首先将Data控件捆绑到数据库文件上,然后将OLE Container控件的“DataSource”属性设置为Data控件,“DataField”属性设置为相应的数据库字段(心音波形数据或心音图)。必须注意的是,在调用数据库中的心音图时,不能用图片框或图像框控件来代替OLE Container控件,否则在运行时会出现“数据类型不匹配”或“图像格式不正确”等错误提示,无法正常显示图形。
, http://www.100md.com
4 结束语
心音听诊的教学方法很多,最常见的是讲授法和实习法,其不足之处在引言中已经进行了阐述。为了辅助心音听诊教学,国内外还采用了其它多种方法,但都有各自的不足之处。本文所述的计算机辅助心音教学系统采用数字声音技术,利用声卡(或计算机内部扬声器)来逼真再现真实心音,实现了心音的教学和听诊能力测试功能。它克服了其它方法的缺点,是当前比较完善的一种教学方法。各种教学方法的对比如表2所示:
表2 各种教学法比较表
Table 2 The comparison of various teaching 教学方法
音调
音色
时间和节律
, http://www.100md.com
总的听觉印象
练习机会
其他特点
实习法
真实
真实
真实
真实
不易得到
心率快时不易听清
讲授法
(使用教学磁带)
较真实
, 百拇医药
较真实
真实
真实
易得到
心率快时不易听清,反复听取同一心音时不便于操作
简谱法
不真实
不真实
能粗略表达
不佳
易得到
模拟法
较佳
, http://www.100md.com
较差
较佳
较佳
易得到
某些心音目前难于模拟
计算机辅助心音教学
系统
较真实
较真实
真实
真实
易得到
容易使用,可循环播放和慢速播放,可对用户进行测试
, 百拇医药
参考文献 1 肖守中.计算机模拟心音.中国医学信息大会论文集,1991
2 林 丽,白剑波.精通Visual Basic 3.0 for Windows.北京:人民邮电出版社,1995
3 周衍椒,张镜如.生理学(第三版).北京:人民卫生出版社,1989
4 喻红宇.Windows下声音文件的多种调用播放方法.中国计算机用户.1996;3.4
5 蔡皖东.基于声霸卡的语音I/O汇编语言编程接口.计算机应用研究.1995;1∶25
(收稿:1998-04-10), http://www.100md.com