DirectSurface UIDirectSurface UI
开始使用
文档/示例项目

示例:病历模板浏览

LIVE CANVAS可运行组件示例
ON-DEMAND RUNTIME交互式示例将在进入视区时启动避免文档首屏同时初始化多个 Canvas Runtime
import { MedicalRecordEditorController, RenderMedicalRecordEditor } from 'ds-ui'

病历模板浏览用于从模板库中选择文档模板,并加载到病历编辑器中做预览或测试。它通常包含模板树、搜索、模板详情和病历编辑器。

页面结构

DockPanel
  left:
    SearchBox
    TreeView
  fill:
    Toolbar
    MedicalRecordEditor

左侧树负责模板定位,右侧编辑器负责加载和预览文档。模板数据来源可以是服务端接口、本地 JSON 或 SQL 解析产物。

数据模型

模板树节点建议包含:

  • 模板 id。
  • 模板名称。
  • 分类 id。
  • 是否叶子节点。
  • 文档 JSON 路径或加载参数。
  • 模板状态。

不要只保存显示文本。加载、搜索、审计和错误排查都需要结构化字段。

编辑器接入

const controller = new MedicalRecordEditorController()const editor = new RenderMedicalRecordEditor({ controller })

模板选中后,由页面服务加载对应 JSON,再交给控制器更新文档。加载第二份模板时,页面可以决定是否滚动到顶部、是否清空选区、是否保留缩放。

完整编辑器 API、工具栏状态、数据元、批注留痕和打印说明见 病历编辑器接入

交互建议

  • 树节点 hover、选中和滚动行为应稳定。
  • 文本过长时显示省略号和完整 tooltip。
  • 点击模板时显示加载状态。
  • 加载失败时在右侧展示错误,不要让编辑器停留在半更新状态。
  • 大模板加载后优先保证滚动和 hover 流畅。

手工测试清单

病历模板浏览通常用于全面手工测试,应覆盖:

  • 普通段落和段落符号。
  • 表格、跨行跨列、列宽拖拽。
  • 日期、下拉、多选、树形数据元。
  • 条码和二维码。
  • 批注、留痕、审计轨迹。
  • 中文输入、粘贴、删除和撤销。
  • 大文档滚动、输入和关闭释放。

性能注意

模板树可以很多,左侧树应支持稳定滚动和省略号。编辑器应只绘制可视页,并避免每次 hover 都触发文档全量刷新。

大文档模板测试时,建议同时观察 Runtime Diagnostics大文档编辑 中的排查步骤。