医用超声设备声强测量系统(AIMS)数据文件解析方法

2015-01-16 06:04梁振士孙京昇
医疗装备 2015年7期
关键词:数据文件声场数据结构

梁振士,刘 毅,孙京昇,冯 磊

(北京市医疗器械检验所,北京101111)

医用超声设备声强测量系统(AIMS)数据文件解析方法

梁振士,刘 毅,孙京昇,冯 磊

(北京市医疗器械检验所,北京101111)

本文简要介绍了NTR公司的声强测量系统(AIMS:Acoustic Intensity Measurement System)及其生成的测量数据文件的结构,着重阐述了解析该类型数据文件、获取声场测量数据并将其保存为特定的数据结构的方法。这些数据的获得有利于借助计算机技术对声场特性进行研究。

超声声场;数据文件;数据结构

0 引言

当前,医用超声设备已成为一类重要的医用电气设备,广泛应用于临床诊断、监护、物理治疗等领域。为了评估医用超声设备在使用中的安全性和有效性,很有必要对超声设备的声场特性的进行检测和分析。

在实践中,常借助于水听器来测量液体水中超声声场的特性。由NTR公司设计、Onda公司制造和销售的声强测量系统(AIMS),可实现采用水听器法测量诊断和治疗用超声设备的声输出参数。该设备可以通过在声场中进行一维、二维甚至三维的扫描,获取被扫描各位置点的声学数据。同时,该系统还具有一定的计算能力,能通过获得的声学数据计算出机械指数(MI)等相关的声学参数。此外,该设备还可将获得的数据输出保存至一组特定的数据文件中,利用文本编辑器可以打开数据文件并查看其中的数据信息。尽管AIMS已经具有一定的计算能力,但这些功能都是固定的,不能完全满足检测人员根据实际需要计算、研究声场的特定属性的需要。要想充分利用AIMS的扫描数据,首先需要对AIMS文件进行解析,提取出其中的测量数据,将其转化为可被计算机处理的数据结构,从而通过对这些数据进行相应的分析处理,获得所需要的声场特性。本文将为此设计相应的数据结构,并说明如何从AIMS的数据文件中提取出扫描数据,并将其存入设计好的数据结构中。

1 AIMS数据文件结构介绍

AIMS三维扫描(X-Y-Z)是由一系列Z坐标值不同的二维扫描(X-Y)组成的。测量人员在测量前设定了本次扫描的X、Y、Z方向首、末点位置以及每个方向上相邻两点的间隔距离,由此规定了扫描中各测量点的位置。对于每一特定的Z值,设备进行一次X-Y平面内的二维扫描。AIMS三维扫描文件由一个总描述文件和一组二维扫描文件组成。每个二维扫描文件记录了对应特定的Z坐标值进行二维扫描时的测量数据。总描述文件记录了此次三维扫描的传感器、定位装置、示波器等的设置参数,还包括了此次扫描数据记录的声学数据类型(如VRMS,MI等,可以是多个类型),以及X、Y、Z方向扫描的点数和各自首末位置、两次扫描的间隔距离等信息。每个二维扫描(X-Y)数据文件的文件名按一定规则编制而成,由三部分组成,第一部分与总描述文件的名称相同,第二部分为该二维扫描对应的Z坐标值的字符串形式,应为3个字符,不足时在第一个字符处用’0’补齐,第三部分为固定形式“00”。第一、二部分之间用’_’相连,第二、三部分间用‘.’相连。在二维扫描文件中,也记录了定位装置、示波器等的设置参数,记录的数据类型,以及X、Y方向扫描的点数和各自首、末位置、两次扫描的间隔距离等信息。这些信息与总描述文件中的信息是一致的。

在数据文件中,数据是以“节”(section)为单元保存的,每节中包含了相关的特定信息。如“Oscilloscope”节中包含了所用示波器的制造商、型号、各通道设置等信息,“2D Scan Data 0”节则包含了一组二维扫描的测量数据,其中的“Data 0”表示数据为预先设定的声场特性中的第一个特性的测量值。除测量数据节外,各“节”中包含的信息的一般包括关键字和相应值,中间用 “” (字符“TAB”)字符隔开,如示波器的制造商保存格式为“ManufacturerAgilent”。声学特性测量数据节的基本格式为:所有数据成矩阵状排列。第一行为X方向各点的位置值,第一列为Y方向各点的位置值,测量数据分别处于各自对应的(X,Y)坐标位置上。同处一行的各数据之间用 “”(字符“TAB”)隔开。

2 数据结构的设计和实现

针对以上文件结构特征,可用图1所示的数据结构对文件信息进行保存。其数据部分的核心为一个Frame(帧)队列,该队列包含了一组Frame,每个Frame对应一个特定Z值的X-Y二维扫描数据文件,这个Frame队列最终将保存该三维扫描中所有的声场测量数据。此外,数据部分还包括了此次三维扫描的帧数、Z坐标首末位置、测量的声场特性类型等信息。

图1 声场特性数据保存结构

本文中利用C++程序设计语言,设计了两个数据类(USData类和CUSFrame类),来实现对文件解析,并将文件中所包含的特定信息通过这两个类保存起来。USData类用来从一组三维扫描的文件中实现文件解析和数据提取,它包含了一个Frame队列,用来保存所有Frame的数据信息。Frame队列中的每个单元为一个CUSFrame对象,对应一个二维扫描文件,即一帧。CUSFrame类实现了从每个对应的二维扫描文件中提取信息,并保存在自己的数据成员中。其数据成员主要包括:二维扫描文件中各声场特性的测量数据,各测量点的X、Y位置等。借助这两个类即可将三维扫描文件中包含的测量数据进行提取和保存,保存的声场特性数据可根据研究的需要进行进一步的运算、处理。

USData类提供的功能函数,最主要是BOOL GetUSData(CString strFilePath,CString strFolderPath,CString strFileTitle);该函数实现了从一组三位扫描文件中提取信息的功能。

USData类的主要成员如下:

class USData

{

public:

……

CUSFrame** m_ppFrame;//指向 Frame队列的指针

int m_nFrameNum;//Frame数量

int m_nZStartPos;//Z起始位置

int m_nZEndPos;//Z终点位置

int m_nDataType;//本次测量的声场特性数目

BOOL GetUSData(CString strFilePath,CString strFolder-Path,CString strFileTitle);//从指定路径下的一组三维扫描文件中提取测量数据

int GetFrameNum(char*pFileData);//从文件信息中提取帧数(X-Y平面扫描次数)

int GetDataType(char*pFileData);//从文件信息中提取本次测量的声场特性数目

CString GetString(char*pFileData,CString strSection,CString strTitle);//从文件中提取指定“节”下的指定关键字的字符信息

int GetInt(char*pFileData,CString strSection,CString strTitle);//从文件中提取指定“节”下的指定关键字的数值信息

……

};

(2)符合构音障碍诊断标准[2],构音障碍的患者其临床表现:说话费力、缓慢、鼻音重、语音语调异常、呛咳吞咽困难等症状。

CUSFrame类的主要功能函数为:

BOOL CUSFrame::GetFrameData(CString strFileName,int nDataType),该函数实现了从一个二维扫描文件中,将各声场特性的测量数据存入数据队列中。

CUSFrame类的主要成员如下:

class CUSFrame

{

……

public:

char* m_pFileData;//对应的二维扫描文件的字符信息

int m_nXCount;//在X方向扫描的点数

int m_nYCount;//在Y方向扫描的点数

double* m_pdXPosArr;//保存 X方向各点位置的队列

double* m_pdYPosArr;//保存 Y方向各点位置的队列

long*m_parrFrmData;//指向各声场特性测量数据队列的指针

int m_nDataType;//声场特性数目

public:

BOOL GetFrameData(CString strFileName,int nData-Type);//从指定的二维扫描文件中提取测量数据信息

char* GetDataSection(CString strSec);//获取指定的某一节

double**Data2Array(char* pDataSec);//将指定的数据节中的数据提取、保存至队列中

……

};

3 文件解析过程

通过可视化界面,可以指定一组三维扫描文件的位置,选中总描述文件,即可启动对这组文件的解析。此时可以定义一个USData类的对象,并由其调用相应的功能函数对文件进行解析。在解析过程中,USData首先读取总描述文件的内容,从中确定此组文件所含帧数(二维扫描文件数)、测量的声场特性数目、Z值的首末位置等信息。然后,按照所含帧数,逐一生成 CUSFrame对象,由 CUSFrame实现对每一个二维扫描文件的解析和数据保存。CUSFrame对二维扫描文件解析时,按照声场特性测量的先后顺序,逐一获取相应的测量数据节,然后分配保存各点位置数据的内存以及保存测量数据的内存,接着对测量数据节进行逐行解析,将位置信息和测量数据信息存入各自的队列中。

4 结论

将一组三维扫描数据中声场均方根声压对应的电压有效值按照本文提出的方法和数据结构提取和保存后,利用OpenGL实现声场特性的可视化(如图2所示),有助于研究声场中均方根声压对应的电压有效值的空间分布情况。此次扫描共包含9帧X-Y二维扫描,图中各点的位置为测量点的空间位置,各点的亮度反映出该点测量值的强度。图3为第一帧X-Y二维扫描的正视图。实验证明,利用以上的数据类,可以实现对三维扫描数据文件的解析,获取文件中所含声场特性的测量数据。这些数据将有利于利用计算机技术对声场特性做进一步的分析和评估。

图2 声场中均方根声压对应的电压有效值的空间分布

图3 声场中均方根声压对应的电压有效值的平面分布

[1]国家技术监督局.GB/T16540-1996声学 在0.5~15MHz频率范围内的超声场特性及其测量水听器法[S].北京:中国标准出版社,1996.

[2]国家食品药品监督管理局.YY/T 0750-2009超声理疗设备0.5MHz~5MHz频率范围内声场要求和测量方法[S].北京:中国标准出版社,2010.

[3]中华人民共和国质量监督检验检疫总局.GB9706.9-2008医用电气设备第2-37部分:超声诊断和监护设备安全专用要求[S].北京:中国标准出版社,2008.

[4]郑莉,董渊.C++语言程序设计(第2版)[M].北京:清华大学出版社,2001.

[5](美)福特,(美)托普.数据结构C++语言描述[M].刘卫东,沈官林译.北京:清华大学出版社,1998.10.

[6](美)Mason Woo等.OpenGL编程权威指南[M].吴斌等译.北京:中国电力出版社,2001.

TH772

A

1002-2376(2015)07-0001-04

2015-01-16

猜你喜欢
数据文件声场数据结构
数据结构线上线下混合教学模式探讨
基于深度学习的中尺度涡检测技术及其在声场中的应用
基于BIM的铁路车站声场仿真分析研究
为什么会有“数据结构”?
探寻360°全声场发声门道
基于表空间和数据文件探讨MIS中数据库架构设计
基于网络环境的社区协同办公问题探讨(二)
高职高专数据结构教学改革探讨
CDIO模式在民办院校数据结构课程实践教学中的应用
板结构-声场耦合分析的FE-LSPIM/FE法