
OHIF extension-default 扩展包演进全解析从 3.7 到 3.13 的核心功能与技术变迁【免费下载链接】ViewersOHIF zero-footprint DICOM viewer and oncology specific Lesion Tracker, plus shared extension packages项目地址: https://gitcode.com/GitHub_Trending/vi/Viewersohif/extension-default是 OHIF Viewerszero-footprint DICOM 浏览器中最核心的扩展包负责提供基本影像浏览所需的全部默认能力包括数据源接入、研究列表、分割渲染、工具栏、侧面板与挂片协议等。本文基于 extensions/default/CHANGELOG.md记录 3.7.0-beta.57 至 3.13.0-beta.89 共数百次发布结合当前仓库源码梳理该扩展包的模块构成、关键版本节点、功能演进主线与底层实现帮助你快速建立对 OHIF v3 架构与迭代脉络的系统认知。扩展包定位OHIF 的默认功能中枢在 OHIF 的扩展Extension架构中extension-default扮演开箱即用的角色。其 package.json 中的描述一语道破其定位Common/default features and functionality for basic image viewing基础影像浏览的通用默认功能。从 src 目录结构 可以看出它覆盖的功能面数据源接入层DicomWebDataSourceQIDO/WADO-RS 检索与拉取、DicomJSONDataSource、DicomLocalDataSource、DicomWebProxyDataSource 与 MergeDataSource多数据源合并UI 组件层研究浏览器 PanelStudyBrowser、DicomTagBrowserDICOM 标签浏览、Toolbar、ViewerLayout视图头、撤销/重做、可调整面板等挂片协议hangingprotocols含乳腺摄影 hpMammo、对比 hpCompare、缩放 hpScale 与 MN 网格 hpMNGrid自定义项customizations 目录下汇集了约 30 个可定制点从上下文菜单、热键绑定、数据源配置到未支持序列处理模块出口getPanelModule、getToolbarModule、getSopClassHandlerModule、getHangingProtocolModule、getDataSourcesModule、getViewportModule等通过统一的模块工厂将能力注入 OHIF 平台。CHANGELOG 中大量条目围绕以上模块展开理解目录结构是阅读变更日志的前提。版本时间线概览CHANGELOG 按语义化版本倒序记录时间跨度从 2023 年 8 月3.7.0-beta.57到 2026 年 6 月3.13.0-beta.89约两年间经历了 3.7 → 3.8 → 3.9 → 3.10 → 3.11 → 3.12 → 3.13 七个大版本每个大版本下都有上百个 beta 迭代。绝大多数发布仅有**Note:** Version bump only for package ohif/extension-default标记即纯版本号提升、无代码变化这说明该包在 monorepo 中处于被依赖链末端——任何上游如ohif/core、ohif/ui-next发布都会触发其版本号同步递增。值得关注的是具有### Features或### Bug Fixes标记的条目它们才真正代表该包的行为变化。下文按功能域归纳演进主线。数据源层演进从 DICOM Web 到多源合并与安全加固数据源Data Source是 OHIF 连接 PACS 与影像数据的桥梁CHANGELOG 中数据源相关变更密集且持续Merge Data Source3.8.0-beta.23新增多数据源合并能力随后 3.8.0-beta.48 修复了合并键检查Check merge key for merge data source3.8.0-beta.53 修复了合并结果排序Sort merge results based on default data source (input)3.9.0-beta.2 又修复了DicomJSONDataSource的序列过滤。当前 MergeDataSource/index.ts 与配套测试index.test.ts展示了其实现DICOM JSON 增强3.8.0-beta.15、3.9.0-beta.99、3.12.0-beta.2加入加载其他显示集与 JSON 元数据生成脚本并修复getUIDsFromImageID与混合 SOP Class JSON 的显示集 UID 生成3.12.0-beta.2 还为其增加了series.instances空值守卫防止 TypeError 崩溃URL 安全与信任策略3.13.0-beta.63、3.13.0-beta.66、3.13.0-beta.60这是 3.13 系列的重要主题——refine dynamic config URL trust policy细化动态配置 URL 信任策略并记录 trusted-origin 行为、Hardening fetch options加固 fetch 选项、Harden dynamic datasource URL trust boundaries and credential handling硬化动态数据源 URL 信任边界与凭证处理对应源码可参考 utils/secureConfigFetch.ts带测试与 loadDynamicConfig.jsStatic WADO3.10.0-beta.75支持大小写不敏感的静态 WADO 检索实现见 DicomWebDataSource/utils/StaticWadoClient.ts数据源配置 UI3.7.0-beta.62、3.12.0-beta.102在数据源未完整配置时自动弹出配置对话框3.12.0-beta.102 将该对话框迁移到 ui-next 组件。配套组件为 DataSourceConfigurationComponent.tsx 与 Google Cloud Healthcare 实现 GoogleCloudDataSourceConfigurationAPI.ts云数据源配置3.7.0-beta.58提供 Google Cloud Healthcare 的 GUI 与 API 配置入口。分割与 RT 生态最活跃的功能域从 CHANGELOG 条目数量看分割Segmentation、RTSTRUCT、SEG 相关变更贯穿所有版本是演进最密集的领域labelmap 分割3.11.0-beta.64Add labelmap segmentation in OHIF在 OHIF 中引入 labelmap 分割表示后续 modes/segmentation 与 extensions/cornerstone-dicom-seg 共同构成了完整的分割模式生态分割工具增强3.10.0-beta.144、3.10.0-beta.131、3.10.0-beta.126新增 AI 与一键Once Click工具、工具预览与选择特性、分割统计segment statistics、labelmap 插值与 segment 双向标注bidirectional未水合分割的可视化3.11.0-beta.67、3.11.0-beta.69修复未加载/未水合分割在切换挂片协议如 MPR时的显示问题并支持在 MPR 中展示未水合的 RTSTRUCT以及将分割叠加到其未引用的显示集上缺引用显示集处理3.11.0-beta.96为 SEG/RTSTRUCT 缺少referencedDisplaySetInstanceUID提供自定义处理入口见 customizations/missingReferenceDisplaySetHandler.ts3D 四联视图与分割水合确认3.13.0-beta.64prevent segmentations from spreading to all viewports before hydration confirmation in 3D four-up防止分割在水合确认前扩散到所有视口对应测试用例可见 tests/SEGHydrationFrom3DFourUp.spec.tsTMTV 分割面板3.8.0-beta.68、3.12.0-beta.128为 TMTV 模式增强分割面板设计并在添加分割表示时考虑混合模式blend mode其他修复3.12.0-beta.134 修复 HistoryMemo 未记住分割删除撤销栈问题3.10.0-beta.31 修复加载 SEG 时黑预览与面板崩溃3.13.0-beta.47 修复带客户端创建分割的序列导航时黑视口。研究列表与工作列表WorkList 取代旧 Study List3.13.0-beta.85 是近期最具标志性的发布之一WorkList:New Study List (WorkList based on ui-next); old study list renamed to LegacyWorklist它引入了基于 ui-next 的全新研究列表 WorkList并将旧列表更名为 LegacyWorklist。围绕研究浏览器的演进还包括新研究面板3.9.0-beta.83在实验性标志下推出新 OHIF study panel研究面板体验完善3.10.0-beta.101、3.11.0-beta.92、3.12.0-beta.40非缩略图序列默认列表视图、默认过滤器改为 all、缩略图菜单加入 DICOM 标签浏览器并修复研究浏览器更多菜单在多显示器场景的问题性能优化3.10.0-beta.113、3.9.0-beta.99修复研究面板性能并缓存显示集中的缩略图3.10.0-beta.99cache thumbnail in display set缩略图渲染策略3.11.0-beta.28Enhance DICOM Thumbnail Rendering with different strategies见 getImageSrcFromImageId.js响应式缩略图3.10.0-beta.70根据面板尺寸调整缩略图布局。UI 技术栈迁移React 18、ui-next 与 rsbuildCHANGELOG 清晰记录了三层技术底座升级React 183.9.0-beta.22move to React 18 and base for using shadcn/ui为引入 shadcn/ui 设计体系铺路对应 package.json 中react: 18.3.1的 peerDependency图标迁移3.10.0-beta.24、3.9.0-beta.111将图标迁移到 ui-next并增加可同时注册到 ui 与 ui-next 两套图标库的addIconAPI见 utils/addIcon.ts构建工具切换 rsbuild3.10.0-beta.55move to rsbuild for dev - faster开发构建切换到 rsbuild仓库根目录的 rsbuild.config.ts 与 package.json 中的 rspack 脚本rspack build --config .webpack/webpack.prod.js即为佐证颜色体系统一3.13.0-beta.11、3.13.0-beta.13用 ui-next 颜色替换遗留颜色、用背景色 token 替换硬编码黑色ui-next 组件落地3.11.0-beta.32、3.13.0-beta.85补齐 LayoutSelector 导出WorkList 全面基于 ui-next。自定义系统可扩展性的灵魂CHANGELOG 中customization高频出现说明 OHIF 的定制能力是持续投入方向自定义合并语义3.9.0-beta.41Add customization merge, append or replace functionality支持自定义项的合并、追加与替换三种语义新自定义服务 API3.10.0-beta.71new customization service api重构自定义服务接口热键迁移3.10.0-beta.106、3.11.0-beta.61热键系统迁移到自定义服务并修复覆盖问题随后为热键管理器类增加 pub/sub 事件工具栏订阅热键按下事件实现状态联动各 UI 组件自定义化视图通知3.10.0-beta.89、viewportGrid 拖放处理器3.10.0-beta.80见 customizations/onDropHandlerCustomization.ts、研究面板双击回调3.10.0-beta.133、更多 UI 组件3.10.0-beta.85、菜单弹窗3.11.0-beta.22侧面板尺寸3.8.0-beta.40、3.10.0-beta.68、3.11.0-beta.86sidePanel expandedWidth引入展开宽度配置随后支持左右侧面板可选地可调整大小resizable再增加初始/最小展开宽度配置相关实现见 ViewerLayout/ResizablePanelsHook.tsx。视口与布局viewportId 取代 viewportIndexviewportId 化3.7.0-beta.63remove viewportIndex and only rely on viewportId视口网格全面转向以viewportId作为唯一标识这一架构调整影响深远相关状态见 stores/useViewportGridStore.ts布局选择器与 3D3.8.0-beta.65新增带 3D 体渲染的新布局选择器3.8.0-beta.67 加入每视口窗宽窗位、患者信息、色条与 3D 预设的视口操作菜单Toolbar 重构3.8.0-beta.64、3.10.0-beta.117新工具栏支持响应式状态同步随后 Toolbar/Toolbox 重构以支持 sections 分组同步问题修复3.11.0-beta.90视口网格不再订阅重复事件监听器。性能、安全与稳定性长期投入的三个维度性能方面3.8.0-beta.55 优化重设大小流程并保持缩放级别3.8.0-beta.9 避免缩略图的多次 Promise 创建3.9.0-beta.59 引入交错 HTJ2K 与体数据渐进式加载interleaved HTJ2K and volume progressive loading3.9.0-beta.54 新增 Study Prefetcher预取服务对应 initStudyPrefetcherService.ts 生态中的预取机制3.10.0-beta.55 的 rsbuild 切换本身即为构建性能优化。安全方面除上文数据源 URL 信任策略外3.12.0-beta.59 还要求 package.json 中的依赖采用精确版本号Use exact versioning for dependencies当前 package.json 中所有依赖如dcmjs: 0.52.0、react: 18.3.1均为精确版本正是该策略的执行结果。稳定性方面修复面覆盖 DICOM 标签浏览器空视口崩溃3.13.0-beta.24、嵌套行展示3.10.0-beta.97与最大调用栈溢出3.10.0-beta.124、多帧 NM 影像3.12.0-beta.116、3.12.0-beta.11、Cine 播放器3.10.0-beta.150、3.8.0-beta.81、SR 水合3.10.0-beta.110、3.13.0-beta.43 支持 spline 与 livewire SR 条目、图像间距空值计算3.12.0-beta.126等。源码级佐证如何在仓库中验证变更阅读 CHANGELOG 时可将条目与源码对应验证。例如查询 Study Prefetcher3.9.0-beta.54→ 查看 initStudyPrefetcherService.ts 中的initStudyPrefetcherService实现查询 ToolGroupService3.13.0-beta.68Centralize tool binding persistence→ 在 platform/core/src/services 下检索ToolGroupService查询 resizable side panels3.10.0-beta.68→ 查看 ViewerLayout/ResizablePanelsHook.tsx查询 4D dynamic volume3.8.0-beta.74→ 查看 extensions/cornerstone-dynamic-volume 与 modes/preclinical-4d查询 merge data source3.8.0-beta.23→ 查看 MergeDataSource/index.ts 及其测试。仓库中还保留了与变更对应的端到端测试例如分割水合系列SEGHydration.spec.ts、SEGHydrationFrom3DFourUp.spec.ts、SR 水合SRHydration.spec.ts、WorkListWorklist.spec.ts等可作为功能行为的第一手验证材料。结语ohif/extension-default的变更日志是一部浓缩的 OHIF v3 演进史从 3.7 时代的数据源配置 GUI、viewportId 重构到 3.8 的 React 18 与 Merge Data Source再到 3.9 的分割工具大爆发与 Study Prefetcher3.10 的多显示器、可调整侧面板与 rsbuild3.11 的 labelmap 分割与 WorkList 前奏直至 3.12/3.13 的 WorkList 落地、动态配置安全加固与 ToolGroupService 持久化。对于需要追踪 OHIF 能力边界、判断升级影响或定位回归来源的开发者而言这份 6700 余行的 CHANGELOG 配合仓库源码与测试构成了最权威的参考坐标系。【免费下载链接】ViewersOHIF zero-footprint DICOM viewer and oncology specific Lesion Tracker, plus shared extension packages项目地址: https://gitcode.com/GitHub_Trending/vi/Viewers创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考