一种电子病历动态分区渲染方法与流程
本发明涉及医疗信息化,具体提供一种电子病历动态分区渲染方法。
背景技术:
1、电子病历是医疗信息化的核心组成部分。传统的电子病历编辑器的技术实现主要基于浏览器dom树或者xml半结构化存储方案,浏览器dom树是通过css布局引擎逐层计算元素位置,例如editor、html富文本编辑器等,xml半结构化存储方案是采用xml格式存储病历数据,结合模板嵌套和自然语言描述,支持部分结构化录入。但是上述现有技术存在以下明显的缺点和不足。
2、(1)布局渲染效率低:传统电子病历编辑器(如基于dom/svg的b/s架构方案)依赖浏览器渲染引擎,在处理大规模病历文档(如100页以上)时存在性能瓶颈。例如,dom渲染需逐层计算元素布局,导致全局重排耗时激增(≥5秒),且无法支撑实时交互(如组件拖拽后动态调整)。其技术根源在于dom树操作与css样式计算的复杂度为o(n2),且频繁触发重绘(repaint)与重排(reflow),导致cpu负载过高。
3、(2)动态适配性不足:现有技术缺乏混合布局管理能力,无法兼容医疗场景中可变区(自由编辑区域)与不可变区(如电子签名、固定模板)共存的复杂需求。例如,组件拖拽时易覆盖不可变区,导致关键信息(如签名、质控标记)丢失或排版错乱;同时,缺乏动态空间索引技术(如r-tree、四叉树),无法实时计算组件重叠度并优化布局路径。
4、(3)数据-视图绑定技术落后:传统数据库存储方式难以实现动态样式与数据分离,导致升级后数据兼容性差(如xml标签定义不规范、样式丢失风险高);同时,需要手动通过javascript手动关联结构化数据(如检验结果)与可视化组件(如表格、图表),导致代码冗余且错误率较高。
5、(4)存储与计算架构低效:在存储方面,传统方案采用集中式数据库存储病历文件(如未压缩dom/xml),导致网络传输压力大,且无法支持分布式存储与快速检索;在计算方面,缺乏分块渲染与异步更新机制,导致内存占用高。
技术实现思路
1、为了克服上述缺陷,提出了本发明,以解决传统电子病历编辑器存在渲染效率低下、组件易覆盖不可变区、以及数据与视图关联复杂且错误率高的问题。
2、本发明提供一种电子病历动态分区渲染方法,包括以下步骤,
3、s1:创建电子病历模板,并在canvas画布上渲染电子病历模板,为整个页面构建全局r-tree空间索引,电子病历模板定义了页面包括不可变区和可变区;
4、s2:响应于用户在canvas画布上拖拽组件,判断拖拽后目标位置的区域类型;
5、s3:若区域类型为可变区,则执行全局r-tree碰撞检测,若区域类型为不可变区,则先执行位置修正策略,再执行全局r-tree碰撞检测;
6、s4:根据全局r-tree碰撞检测结果执行冲突检测,判断是否发生冲突;
7、s5:若没有发生冲突,则插入组件,若发生冲突,则执行冲突解决后再插入组件;
8、s6:组件插入完成后,提供侧边栏元数据配置界面。
9、进一步,所述位置修正策略是根据不可变区的边界和四叉树空闲网格信息,自动将组件的拖拽终点吸附到最近的可变区边缘,并将组件拖拽后目标位置的坐标进行修正。
10、进一步,执行全局r-tree碰撞检测包括:
11、基于全局r-tree空间索引,计算被拖拽组件与页面上所有不可变区之间的重叠度,预设碰撞阈值θ=0.15,其中,a表示被拖拽组件面积,b表示不可变区面积,aib表示重叠区域面积,ayb表示被拖拽组件和不可变区总面积,全局r-tree索引以最小外接矩形快速定位空间关系。
12、进一步,所述步骤s4包括,将计算出的重叠度overlap与阈值θ进行比较,若overlap≤θ,判定为没有发生冲突,若overlap﹥θ,判定为发生冲突。
13、进一步,所述步骤s5中,冲突解决包括依次执行的以下步骤:
14、s511:基于优先级权重模型和a路径规划算法为组件规划最优位移路径,确定组件的最终位移终点坐标;
15、s512:为组件执行最优位移路径,并更新局部四叉树空间索引;
16、s513:采用canvas分块渲染技术,重绘与组件新位置相关的局部画布区域。
17、进一步,所述优先级权重模型包括,计算不可变区权重 ,其中,s为不可变区的区域面积占比,t为时间戳衰减因子;
18、所述a路径规划算法包括,以组件当前位置为起点,以附近空闲的可变区为目标,综合考虑移动距离以及途经区域的权重和弹性系数,生成一条折线路径,路径生成后,引入贝塞尔曲线作为平滑插值算法,并将该路径规划与canvas主渲染线程解耦。
19、进一步,所述步骤s512包括,对于包含嵌套表格、图文混排组件的高密度区域,将其细分为四叉树网格单元,通过递归分割算法动态调整网格密度,更新后的四叉树仅对覆盖区域内的组件进行像素级碰撞检测。
20、进一步,在最终确定的插入位置,执行组件插入操作,包括依次执行的以下步骤:
21、s521:根据四叉树空闲网格坐标,自动将组件对齐至最近网格边缘;
22、s522:按组件类型分配渲染层级;
23、s523:在canvas画布上绘制该组件。
24、进一步,所述提供侧边栏元数据配置界面包括,用户将数据库字段从侧边栏拖拽至canvas上已插入的组件,引擎自动生成从数据库字段到组件的映射关系。
25、本发明的工作原理和有益效果:
26、在实施本发明的技术方案中,通过区分可变区与不可变区并结合r-tree空间索引,避免了组件拖拽时覆盖关键固定信息,同时降低碰撞检测的计算复杂度从,显著提升了大规模病历文档中组件布局的实时交互效率与渲染性能。
1.一种电子病历动态分区渲染方法,其特征在于,包括以下步骤,
2.根据权利要求1所述的一种电子病历动态分区渲染方法,其特征在于,所述位置修正策略是根据不可变区的边界和四叉树空闲网格信息,自动将组件的拖拽终点吸附到最近的可变区边缘,并将组件拖拽后目标位置的坐标进行修正。
3.根据权利要求1所述的一种电子病历动态分区渲染方法,其特征在于,执行全局r-tree碰撞检测包括:
4.根据权利要求1所述的一种电子病历动态分区渲染方法,其特征在于,所述步骤s4包括,将计算出的重叠度overlap与阈值θ进行比较,若overlap≤θ,判定为没有发生冲突,若overlap﹥θ,判定为发生冲突。
5.根据权利要求1所述的一种电子病历动态分区渲染方法,其特征在于,所述步骤s5中,冲突解决包括依次执行的以下步骤:
6.根据权利要求5所述的一种电子病历动态分区渲染方法,其特征在于,所述优先级权重模型包括,计算不可变区权重 ,其中,s为不可变区的区域面积占比,t为时间戳衰减因子;
7.根据权利要求5所述的一种电子病历动态分区渲染方法,其特征在于,所述步骤s512包括,对于包含嵌套表格、图文混排组件的高密度区域,将其细分为四叉树网格单元,通过递归分割算法动态调整网格密度,更新后的四叉树仅对覆盖区域内的组件进行像素级碰撞检测。
8.根据权利要求5所述的一种电子病历动态分区渲染方法,其特征在于,在最终确定的插入位置,执行组件插入操作,包括依次执行的以下步骤:
9.根据权利要求1所述的一种电子病历动态分区渲染方法,其特征在于,所述提供侧边栏元数据配置界面包括,用户将数据库字段从侧边栏拖拽至canvas上已插入的组件,引擎自动生成从数据库字段到组件的映射关系。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com