《工业控制计算机》2021年第34卷第4期87基于Qt的医检仪器的MVC框架模式的研究
Research on MVC Framework Mode of Medical Exami;ation Equipmeat Based on Qt 宋文彬李宇刘浩何永涛(东南大学自动化学院,江苏南京210096)
摘要:医疗检测仪器正朝着集成化、智能化、自动化、小型化、人机交互友好化的方向发展。基于管理机-控制机体系的嵌入式系统是目前体外诊断仪器的主流发展方向。Qt作为新型的图形用户界面开发框架,正被广泛应用在各行各业遥提出了一种Qt框架下的MVC架构,可以适用在常规的医疗检测仪器的管理机开发中,并针对于扩展型管理机的开发进行了设计与探讨。
关键词:医检仪器;Qt;MVC
Abstract:Medical testing instruments are developing in the direction of i;tegratio;|i;tellige;ce|automatio;|mi;iaturizatio;| and friendly human-computer interaction.The embedded system based on the management-control machine system is the mainstream development direction of in vitro diagnostic instruments.As a new gr a phic a l user interf a ce development fr a me-work,Qt is being widely used in all walks of life.This p a per proposes a MVC architecture under the Qt fr a mework,which c a n be applied to the development of convention a l medic a l testing equipment m a nagement m a chi;es•BesideS|this p a per designs and discusses the development of extended man a g
ement machines under the fr a mework.
Keywords:medic a l testing i;strume;tS|Qt|MVC
1医疗检测仪器的现状和发展
近年来,随着国家和地方对医学检验的大力支持,医学检验技术得到了蓬勃的发展[1]遥医检仪器也朝着自动化、多功能化的方向发展。同时,小型化、可扩展化,并具备先进的人机交互界面的仪器正是占有未来医疗检测市场的强大武器。
嵌入式技术有高度的专业性,可为特定的需求进行高效的定制,工作效率、可靠性更高咱養嵌入式系统已经成为常规医疗检测仪器的主流设计与实现的方向。其不仅可以使检测仪器朝着便携化、低成本化的方向发展,而且可以根据仪器的独特需求实现定制,更加高效地实现仪器功能遥
目前,大多数嵌入式检测仪器都是专项专测遥然而,随着医学检验技术的日益更新,以及临床诊断需求,医疗检测仪器正向着多模块、可扩展的方向发展。在原有的检测模块的基础上,扩展新的检测模块,增强检测的灵活性,实现检测结果的联合显示,提高仪器的使用效率、扩大其使用范围。
2Qt及MVC模型的简述
2.1Qt的简述
Qt是一个应用程序开发框架,是在1991年由Qt Company 开发的跨平台具体。在该平台上,既可以开发GUI程序,也可以开发控制台工具、服务器。其也主要用于开发桌面程序、嵌入式程序。在iOS和Android平台,Qt也作为手机App的开发工具。
Qt最大的特点就是跨平台性,一次编码,多系统编译。Qt支持的编译器有G++、clang、mingw以及msvc,支持的操作系统平台有Linux、OS X、Windows、VxWorks、QNX、Android、iOS 等等。开发人员只需一次编码,编译即可生成各个平台下的原生应用程序,无需修改任何源代码。且Qt会自动依据不同的平台,表现岀各个平台所特有的画面及其风格特。Qt使用的是面向对象的语言C++,运行效率高于C#,适用于需要大量运算的开发项目,尤其在图像处理软件、特效制作软件中。
值得一提的是,Qt不仅是一个GUI库,除了可以创建岀美轮美奂的界面,还可以适用其他组件。开发者无需研究STL,无需解析XML、连接数据库等第三方软件库,这些在Qt内中已经内置。Qt带来的问题是内存庞大、封装较深,但这些随着处理器的强大,已然不是问题。同时,其处理速度很快,虽较慢于MFC,但比Java、C#要快,且其程序会编译成本地代码,无需依托虚拟机。2.2MVC模型的简述
在一般的管理机中,主要功能主要包含三部分:第一部分是接收、处理控制机交互的数据;第二部分是打包、发送交互数据给控制机;第三部分是逻辑业务,将数据实时或者修正后显示到人机交互的界面,并对某些数据进行存储。从软件角度而言,分为三层,数据层、业务逻辑处理层以及UI层。MVC框架模式岀来后,逐渐成为主流的框架模式,经典的三层模型已渐渐销声匿迹。
MVC是一种框架模式,区别于设计模式回。其最大的特点是代码重用,可以直接执行或者复用。设计模式是小于框架的元素,框架中往往包含多个设计模式。框架总是针对某一特定的应用领域,反之,设计模式却可以应用于不同的领域。总而言之,框架就是一种软件。
MVC模式,将软件系统分为三个部分:模型、视图和控制器(Model、View、Controller)。Modal又称为数据模块,其中存储的是软件中的数据。对于用户,可以操作视图来作为输入,修改模型中的值。相对应,模型中的值会间接呈现在视图上。View负责与用户的交互。通过视图,用户可以输入并获得输岀的反馈。Controllar是连接Model和View的桥梁。
MVC框架模式具有高内聚、低耦合的性质。框架图如图1遥其将业务逻辑聚集在一个部件里面,各部分相互独立又相互联
图1经典的MVC
mvc实例框架图
88基于Qt的医检仪器的MVC框架模式的研究
系,可以让各部分专注于自己的任务,无需关注其他部件。在改
进和个性化定制用户交互界面时,无需改动业务逻辑的代码,仅
仅需要在View层进行改动。其优势主要依赖于具有承上启下特
点的Contro I I er层。
2.3Qt的MV模型
类似于MVC框架模式,
Qt中增加了Mode I/View结
构来实现数据与界面的分离。
Qt的In t erView集成了View
和Controller,并引入了代理
(Delegate)层,来实现MVD
的框架模式。如图2所示。这
三者之间的主要关系如下:
图2Qt的MV框架图1)数据改变时袁Mode I层
发岀信号通知View层;
2)人机交互时,View层发岀信号;
3)DeIegate层相互通知View层和Model层的状态。
3可扩展型医疗检测仪器管理机的Qt下的MVC框架模式的设计
在之前的常规的医疗检测仪器的管理机开发的框架设计中袁UI界面通常融合在功能模块中,这不利于产品的升级和迭代,以及后续的界面优化与模块的添加。将UI界面和业务逻辑尽可能的分离是Qt开发应用程序的一个基本原则。与此同时,Qt不单单实现了UI交互界面设计,还可以进行后端开发,如数据处理
业务的实现。
在Qt的设计早期,设计人员为了简化开发人员的工作量,
封装了复杂的逻辑组织和数据结构,即Model-View结构。这种思想在早期的Qt应用中,已足够开发人员使用,但随着需求的增加,技术的发展,该框架已远远不够。在MVC框架模式中,Qt 并没有实现C(Controller层,也没有实现C的体制、机制。该框架模型仅是保存对应的View层状态的模型,是整个程序的子集或者侧面,无法面对更加复杂的Model层信息的变化。
针对于常规的医学检测仪器,从功能需求的角度岀发,有如
下需求:
1)人机交互,提供友好交互、信息期权的GUI界面。
2)数据的接收、处理、保存。管理机接收控制机传送的数据,进行处理,并图形化显示,同时保存在相应位置。
3)数据的管理。用户可以通过交互界面进行历史数据的查询、修改、添加等操作。
4)外接设备的管理。管理机连接打印机、键盘、鼠标等设备。
5)兼容并管理多台控制机。实现一对多的管理架构,管理机可以实现对每一台控制机的全面控制,并具有针对性。同时,提供尽可能高的兼容性,功能结构相似的控制机都可以被同一台管理机控制。设备整体框图如图3所示。
本文为实现上述需求下的常规嵌入式医疗检测仪器的管理机,在Qt的开发平台下,设计了新的MVC框架模式。不论是一对一的管理机、控制机模式,还是拓展型的一拖多模式,该MVC 框架都可以较好地开发,实现需求。为了区别于传统的MVC框架,结合Qt特点,本文将C层作为Communication层,实现View和Model层的逻辑通信与信息交互铁同时,为了更好将MVC框架应用在一拖多的场景下,对View和Controller层进行了多层设计,彼此隔离,相互协作。Qt的一对多MVC框架模式框图如图4所示。
针对不同的检测单元(模块),分配不同的Communication,
CMftl
UR*'*|lju E e严
图3设备整体框图
图4Qt的一对多MVC框架模式框图
与之对应的是各自的View层。各个模块之间的Communication. View无法通信,但是为了应对实际需求,将在Communication和Mode I层之间添加缓存区,以达到数据的提前处理和共享。
Communication层类似于Controller层,主要实现对数据的采集,如串口、网口、Wi-Fi模块、CAN口等。接收到的数据送到业务逻辑层进行处理,用户发送的数据也由该层发送到执行模块上。在Qt平台上,本文的设计思想是将所有的Communi-cation类都会实例化为一个个单独的对象线程,一般几个模块就有几个线程,不会阻塞GUI主线程。在异步Q中,可以更好地发挥代码的鲁棒性,同时,也可以更好、更快地响应采集信息与传递控制机的控制信息。
4结束语
本文选择了Qt作为管理机开发工具,在Qt上按照MVC 框架设计并开发了常规医疗检测仪器管理机的软件,并在某公司的五分类血液分析仪(拓展模块为CRP检测仪)进行了实际的升级与开发。事实证明,该框架可以较好地实现医疗检测仪器常规需求,提升多模块下的仪器性能。但仪器测试还需进一步跟进,该框架的优势还需进一步验证与发掘遥
参考文献
[1]杨辉,胡凯•新政策下国产创新医疗器械的机遇与挑战[J].中国医疗
设备,2019,34(2):161-164
[2]窦兴师•嵌入式系统的现状及发展趋势[J].电子制作,2018(3):100-
101
[3]Fridman Liraz,Rothman Linda,Howard Andrew William,et al.
Methodological considerations in MVC epidemiological re­search[J].Injury Prevention,2020,27(2):155-160
[4]Amwha•基于Qt的软件框架设计[EB/0L](2017-06-29)[2020-
12-15].blog.csdn/amwha/article/details/73928281
[收稿日期:2021.1.11
]