当前位置: 首页 > news >正文

基于VC++的心脏传导系统模拟器设计(2D虚拟心脏)

心脏传导系统模拟器设计
目录
1 引言 2
1.1 临床心律失常分析方法 2
1.2 基于知识规则建模的自动诊断方法研究现状 4
1.3 心脏计算机仿真模型的研究发展现状 7
2 基于心电图生成模型的诊断方法研究 9
2.1 心电图自动诊断模型的设计思路 9
2.2 心电图生成模型的数学结构分析 12
2.3 基于字典法的心脏数学模型研究 15
2.4 心脏传导系统建模 15
3 心脏传导模型设计 17
3.1 心脏与导联电极的空间位置关系 17
3.2 传导单元数学模型 17
3.3 心室肌病变相关参数 21
4 心脏电活动字典结构设计 24
4.1 心脏传导子系统设计 24
4.2 心房激动子系统设计 25
4.3 心室激动子系统设计 26
4.4 字典粒度与容器初始化方法研究 27
4.5 模型预测算法研究 28
5 系统实现 32
5 .1心脏传导模型可视化设计 32
5.2 心脏传导模型仿真实验 33
通过心电图诊断,我们不仅需要知道病的类型,更希望通过对心电图的分析来找到病因,有针对性的制定治疗方案。普通医务工作者仅仅能够通过教科书上的典型波形对比查找病因,而有经验的医学专家能够对心脏电传导理论模型进行分析,推导出复杂心电图现象的形成原因。
随着计算机技术的发展和普及,研究人员早已开始尝试将计算机仿真技术应用于心脏传导研究。Aoki 等人建立了心脏纵切面的模型,该模型设定心内膜为起搏点,研究电传导由心内膜扩展到心外膜的过程。Abboud 建立了理想化的心脏电传导模型。Lorange 的模型考虑了浦肯野网络。Siregar 以及 Berenfeld 建立了针对传导系统的计算模型,能够对束间折返做出仿真。Kim Simeliusa 的模型具有真实解剖结构。曼彻斯特大学的张恒贵等人构造的心脏模型具有精细的心脏解剖结构和准确的细胞电生理参数,能够对多种临床病征的发病机理做出阐释。
虚拟心脏能够解决临床实践中的疑难问题。例如用虚拟心脏模拟验证射频消融除颤手术方案。射频消融技术用于阻断折返回路,对颤源进行治疗,但是手术具有不确定性,需要在相关部位反复尝试,对心脏健康组织破坏较大。采用虚拟心脏技术对射频消融手术方案进行论证,能够提高手术一次性成功的概率。虚拟心脏有以下发展趋势:
(1)采用更高精度的 CT 获得更为精确的心脏物理结构,进一步提高虚拟心脏的模型精度。
(2)虚拟心脏的可视化技术研究。
(3)虚拟心脏的计算方法研究。模型计算量随着模型分辨率的提升呈指数增长。现代虚拟心脏需要在超级计算机上运行数小时才能获得一次心跳的计算结果,需要改进算法进一步降低计算成本。
(4)模拟心内膜-心外膜-体表电动势之间的传导过程,研究心脏正问题和心电逆问题的计算方法。
与虚拟心脏同时出现的一对孪生问题是心电正问题和心电逆问题。心电正问题是在已知心外膜电动势的条件下,求解体表电动势,已知是容易解决的。心电逆问题是在已知体表电动势的条件下,求解心外膜电动势,已知难解。但是心脏逆问题在临床上有重大应用价值,是研究者们努力攻克的目标。本文转载自http://www.biyezuopin.vip/onews.asp?id=15760


// CCAView.h : CCAView 类的接口
//

#pragma once

typedef struct __tag_PIN_POS
{
	int x;
	int y;
	int state;
} PIN_POS;

class CSmartDC;
class CCAView : public CScrollView
{
private:
	BOOL m_b1msPerPixel;

	CDC* m_pdcBackground;
	CDC* m_pdcSinusNode;     //窦房结(心房肌A_9_30)
	CDC* m_pdcEctopicPacemakerOnRA; //右心房的异位起搏点(心房肌A_8_30)
	CDC* m_pdcEctopicPacemakerOnLA; //左心房的异位起搏点(心房肌A_1_0)
	CDC* m_pdcEctopicPacemakerOnRV; //右心室的异位起搏点(心室肌V_7_0)
	CDC* m_pdcEctopicPacemakerOnLV; //左心室的异位起搏点(心室肌V_2_30)
	CDC* m_pdcJunction;      //房室交界区自律(房室结下端)
	
	CDC* m_pdcS_A;           //房间束(窦房结到房室结上端)
	CDC* m_pdcBachmann;      //左房间束(窦房结到心房肌A_0_0)
	CDC* m_pdcJames;         //跨越房室结的James束(房室结上端到房室结下端)
	CDC* m_pdcAVFast;        //房室结快路径(房室结上端到房室结下端)
	CDC* m_pdcAVSlow;        //房室结慢路径(房室结上端到房室结下端)
	CDC* m_pdcKentLeft;      //左Kent束(心房肌A_8_0到心室肌V_8_0)
	CDC* m_pdcKentRight;     //右Kent束(心房肌A_1_30到心室肌V_1_30)
	CDC* m_pdcHisBundle;     //希氏束(房室结下端到希氏束下端)
	CDC* m_pdcRBB;           //右束支
	CDC* m_pdcLBB;           //左束支

	CDC* m_pdcIAS;           //房间隔
	CDC* m_pdcIVS;           //室间隔
	CDC* m_pdcAtrium;        //心房肌传导环
	CDC* m_pdcVentricle;     //心室肌传导环

	CSmartDC* m_pMemDC;
	CSmartDC* m_pBarChartDC;
	CSmartDC* m_pLocationDC;
	CSmartDC* m_pSketchImageDC;
	int m_nLocationBmpW;
	int m_nLocationBmpH;

	int m_nMousePosX;
	int m_nMousePosY;
	int m_nMouseDown;

	PIN_POS** m_pBarChartBuffer;
	int m_nBarChartRow;

	POINT** m_pActivePointBuffer;
	int m_nActivePointRow;

protected: // 仅从序列化创建
	CCAView();
	DECLARE_DYNCREATE(CCAView)

// 特性
public:
	CCADoc* GetDocument() const;

// 操作
private:
	void InitUnitDC(CDC* pDC);
	void ReleaseBarChartBuffer();
	void ReleaseActivePointBuffer();
	void InitSketchConnection(CCADoc* pDoc);
	BOOL GetTsPos(int* pTerminalOutput, int* x, int* y, int* myTerminal);
	void DrawConnectionLine(int* pInput, int x1, int y1, int* myTerminal);
	void DrawSuBlockSign(CDC* pdc, SPONTANEOUS_UNIT* psu);
	void DrawCuBlockSign(CDC* pdc, CONDUCTION_UNIT* pcu);

public:
	void RenewBarChart();

// 重写
public:
	virtual void OnDraw(CDC* pDC);  // 重写以绘制该视图
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);

protected:
	virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
	virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
	virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);

// 实现
public:
	virtual ~CCAView();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:
	void DrawAll(CCADoc* pDoc, CDC& dc);
	void DrawRuler(CDC& dc);
	void DrawHeadline(CCADoc* pDoc, CDC& dc);
	void DrawActiveBar(CCADoc* pDoc, CDC& dc);

public:
	void DrawSketch(CDC* pdc, CARDIAC_MODEL* pModel,
		BOOL bSinusNode,
		BOOL bPacemakerOnRA,
		BOOL bPacemakerOnLA,
		BOOL bPacemakerOnRV,
		BOOL bPacemakerOnLV,
		BOOL bJunction,
		BOOL bS_A,
		BOOL bBachmann,
		BOOL bJames,
		BOOL bAVFast,
		BOOL bAVSlow,
		BOOL bKentLeft,
		BOOL bKentRight,
		BOOL bHisBundle,
		BOOL bRBB,
		BOOL bLBB,
		BOOL bIAS,
		BOOL bIVS,
		BOOL bAtrium,
		BOOL bVentricule);

// 生成的消息映射函数
protected:
	DECLARE_MESSAGE_MAP()
public:

	virtual void OnInitialUpdate();
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
	afx_msg void On1msPerPixel();
	afx_msg void On5msPerPixel();
	afx_msg void OnEditAttr();
	afx_msg void OnExportSequence();
	afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
};

#ifndef _DEBUG  // CCAView.cpp 中的调试版本
inline CCADoc* CCAView::GetDocument() const
   { return reinterpret_cast<CCADoc*>(m_pDocument); }
#endif


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

  • 遇见和光同尘
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • IMX6ULL学习笔记(4)——安装并使用交叉编译工具链
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • 9月2日目标检测学习笔记——自然场景下文本检测
  • 易基因技术推介|植物内生菌宏基因组研究
  • 基于springboot+vue的游戏交流论坛系统 elementui
  • 【目标检测算法】YOLO-V1~V3原理梳理
  • 【Kafka】Docker安装kafka、搭建kafka集群
  • 4.【Linux虚拟机】创建自己的docker image并提供后端服务
  • 基于STFT和卷积神经网络的时序数据分类 代码+数据 可直接运行
  • 神经网络建模的适用范围,神经网络建模流程详解
  • 实名核验类API推荐
  • cmakelist.txt , cmake, makefile, make 【超快区分理解】
  • 【去雾论文阅读】Saturation Based Iterative Approach for Single Image Dehazing
  • 《深入 React 技术栈》
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • Javascript Math对象和Date对象常用方法详解
  • javascript数组去重/查找/插入/删除
  • Java多线程(4):使用线程池执行定时任务
  • Python连接Oracle
  • SpringBoot几种定时任务的实现方式
  • 关于springcloud Gateway中的限流
  • 基于web的全景—— Pannellum小试
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 普通函数和构造函数的区别
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 数据可视化之 Sankey 桑基图的实现
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 我与Jetbrains的这些年
  • 新版博客前端前瞻
  • 做一名精致的JavaScripter 01:JavaScript简介
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • 移动端高清、多屏适配方案
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​什么是bug?bug的源头在哪里?
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (12)Linux 常见的三种进程状态
  • (31)对象的克隆
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (已解决)什么是vue导航守卫
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转载)虚函数剖析
  • .NET Core WebAPI中封装Swagger配置
  • .net反编译工具
  • .NET应用架构设计:原则、模式与实践 目录预览
  • @angular/cli项目构建--http(2)
  • @data注解_一枚 架构师 也不会用的Lombok注解,相见恨晚
  • @EnableConfigurationProperties注解使用