ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

OHIF Mode 安装完全指南:使用 CLI 添加本地与 NPM 发布模式

OHIF Mode 安装完全指南:使用 CLI 添加本地与 NPM 发布模式 OHIF Mode 安装完全指南使用 CLI 添加本地与 NPM 发布模式【免费下载链接】ViewersOHIF zero-footprint DICOM viewer and oncology specific Lesion Tracker, plus shared extension packages项目地址: https://gitcode.com/GitHub_Trending/vi/ViewersOHIF v3 采用模式Mode 扩展Extension的模块化架构允许开发者通过可插拔的模式为查看器注入自定义临床工作流。本文以 platform/docs/docs/platform/modes/installation.md 为核心系统讲解 OHIF 模式的两种安装路径——本地模式链接与 NPM 发布模式的在线安装并结合 CLI 源码剖析其底层校验、依赖解析与配置写入机制帮助你快速为查看器接入新工作流。OHIF-v3 的外部模式机制OHIF-v3 架构重新设计的目标是让应用能够针对各种用例Modes轻松扩展并在后台利用所需的功能Extensions达成用例目标。也就是说模式是查看器的工作流外壳扩展是支撑模式的功能模块。OHIF-v3 提供了使用外部模式的能力见 installation.md本地模式尚未发布或处于开发阶段的模式通过link-mode链接到查看器NPM 发布的模式已发布到 NPM registry 的公开模式通过add-mode直接安装。两条路径都通过随 OHIF monorepo 分发的cli工具完成。该工具由 platform/cli/src/index.js 实现入口命令定义在根目录 package.json 中cli: node ./platform/cli/src/index.js注意CLI 目前内置于 OHIF monorepo需要通过yarn或pnpm调用。CLI 启动时会校验当前目录的package.json中name必须为ohif-monorepo-root否则报错 ohif-cli must run from the root of the OHIF platform 并退出——因此所有 CLI 命令都必须在 monorepo 根目录执行platform/cli/src/index.js。CLI 命令总览运行yarn run cli --help可以查看全部可用命令yarn run cli --helpOHIF CLI Options: -V, --version output the version number -h, --help display help for command Commands: create-extension Create a new template extension create-mode Create a new template Mode add-extension packageName [version] Adds an ohif extension remove-extension packageName removes an ohif extension add-mode packageName [version] Removes an ohif mode remove-mode packageName Removes an ohif mode link-extension packageDir Links a local OHIF extension to the Viewer to be used for development unlink-extension extensionName Unlinks a local OHIF extension from the Viewer link-mode packageDir Links a local OHIF mode to the Viewer to be used for development unlink-mode extensionName Unlinks a local OHIF mode from the Viewer list List Added Extensions and Modes search [options] Search NPM for the list of Modes and Extensions help [command] display help for command与模式Mode直接相关的命令是create-mode、link-mode、unlink-mode、add-mode、remove-mode以及用于查看与管理已装插件的list和search。安装 NPM 发布的模式add-modeadd-mode是安装公开 NPM 模式的核心命令。它会在 NPM registry 中查找指定包并安装同时把模式依赖的扩展一并加入查看器。yarn run cli add-mode packageName [version]不指定version时使用该包的dist-tags.latest最新版本支持^前缀的次版本匹配见 validate.js 中getVersion的版本解析逻辑若模式在peerDependencies中声明了依赖的 OHIF 扩展CLI 会自动安装这些扩展。安装前校验ohif-mode 关键字add-mode的第一步是对 NPM 包进行校验addMode.js 调用validateMode。校验规则来自 keywords.jsconst keywords { MODE: ohif-mode, EXTENSION: ohif-extension, };CLI 会拉取 NPM registry 中该包元数据检查目标版本包的keywords数组是否包含ohif-modevalidate.js。不满足条件的包会被拒绝并报错package xxx is not an ohif-mode不存在的包则报package xxx not found。这意味着一个合格的 OHIF 模式包必须在 package.json 中声明keywords: [ohif-mode]。完整安装流程与配置写入add-mode使用listr任务链依次执行addMode.js搜索校验模式validateMode(packageName, version)安装 npm 包installNPMPackage(packageName, version)将模式写入配置文件addModeToConfig(packageName, yarnInfo)检测依赖扩展findRequiredOhifExtensionsForMode(yarnInfo)读取模式的peerDependencies安装依赖扩展若有扩展依赖调用addExtensions(...)依次安装。配置文件即platform/app/pluginConfig.json注意小写pluginConfig.jsonCLI 的list命令也读取该路径见 index.js。写入逻辑由 manipulatePluginConfigFile.js 实现addModeToConfigJson会先把同名条目从modes数组移除幂等再追加{ packageName, version }。当前仓库的 platform/app/pluginConfig.json 中modes数组已包含ohif/mode-longitudinal、ohif/mode-basic、ohif/mode-segmentation、ohif/mode-tmtv、ohif/mode-microscopy、ohif/mode-preclinical-4d、ohif/mode-test、ohif/mode-basic-dev-mode等格式如下{ modes: [ { packageName: ohif/mode-longitudinal }, { packageName: ohif/mode-segmentation, default: false, version: 3.0.0 } ] }实战示例安装 ohif-test/mode-clock官方文档以ohif-test/mode-clock为例演示add-modeyarn run cli add-mode ohif-test/mode-clock该模式的功能是提供一个显示时钟的面板。执行后 CLI 输出大致如下Adding ohif-mode ohif-test/mode-clock... ✔ Searching for mode ✔ Installing npm package ✔ Adding ohif-mode to the configuration file ✔ Detecting required ohif-extensions... Added ohif-mode ohif-test/mode-clock3.1.0 Installing dependent extensions ✔ Added ohif-extension ohif-test/extension-clock3.1.0由于ohif-test/mode-clock在peerDependencies中声明了ohif-test/extension-clockCLI 自动将该扩展一并安装到查看器。安装完成后查看器启动时便会出现Clock Mode这个新模式与Basic Viewer并列供用户切换。链接本地模式link-mode / unlink-mode对于开发中、尚未发布到 NPM的本地模式使用link-mode将其链接到查看器。这在创建模式模板 → 开发调试 → 最终发布的迭代流程中至关重要。yarn run cli link-mode packageDirlink-mode的底层实现linkPackage.js会读取本地包package.json校验keywords包含ohif-mode否则报错${packageName} is not ohif-mode校验 pnpm已安装validatePnpm因为当前 monorepo 使用 pnpm 作为包管理器切换到 OHIF Platform 根目录执行pnpm link resolvedPackageDir --config.frozen-lockfilefalse链接会改动 lockfile因此需关闭 frozen-lockfile 校验更新 webpack 配置将链接包的node_modules路径写入platform/app/.webpack/webpack.pwa.js的modules数组保证 webpack 能找到链接包的外部依赖将{ packageName, version }写入pluginConfig.json的modes数组对 webpack 配置执行 prettier 格式化。与之对应unlink-mode modeName会将模式从查看器移除并提示dont forget to run pnpm installindex.js。create-mode模式模板的起点yarn run cli create-modecreate-mode通过inquirer交互式提问创建模式模板index.js 中的_createPackage问题包含默认答案显示在括号中直接回车使用默认值。部分提问涉及是否立即初始化 git 仓库默认Y。注意create-mode只生成模板要使用该模式必须先执行link-mode链接到查看器。从仓库中的真实模式可以看到模式入口文件的标准形态例如 modes/basic/src/index.tsx 导出id、routeName: basic、displayName以及isValidMode等字段并通过getHangingProtocolModule、getToolbarModule等接入查看器运行时。卸载模式remove-modeyarn run cli remove-mode packageNameremove-mode的处理与add-mode对称removeMode.js校验该模式已安装validateModeYarnInfo同样检查ohif-mode关键字卸载 npm 包uninstallNPMPackage从pluginConfig.json的modes数组移除该条目通过findOhifExtensionsToRemoveAfterRemovingMode检测如果某扩展只被该模式依赖、不再被任何已安装模式使用则一并移除这些扩展。该机制保证了卸载模式后不会遗留孤儿扩展依赖。管理已安装插件list 与 searchlist列出查看器当前安装的所有扩展与模式数据来自pluginConfig.jsonyarn run cli list输出按 Extensions 和 Modes 分组每项显示packageName versionlistPlugins.js。search在 NPM registry 中搜索 OHIF 扩展与模式yarn run cli search [--verbose]CLI 通过 NPM 关键字接口分别按ohif-extension和ohif-mode检索searchPlugins.js默认显示包名、版本和描述加--verbose即-v会额外显示仓库链接。配置与环境的补充说明pluginConfig.jsonCLI 的配置中枢pluginConfig.json是 CLI 所有增删命令的配置中枢由 CLI 自动生成与维护不需要也不应该手工编辑。它跟踪查看器当前使用的所有扩展、模式及其版本见 ohif-cli.md。除extensions、modes数组外文件还包含public数组用于声明需要由 webpack 静态拷贝的公共资源如 platform/app/pluginConfig.json 中的dicom-microscopy-viewer动态导入路径。私有 NPM 仓库若模式发布在私有 NPM 仓库需要先创建一个只读 token 并导出为环境变量CLI 在拉取 registry 元数据时会通过Authorization: Bearer token请求头携带它见 validate.jsnpm login npm token create --read-only export NPM_TOKENyour readonly token外部依赖处理ohif-cli会把外部依赖的路径写入 webpack 配置platform/app/.webpack/webpack.pwa.js这样你可以在自己的项目里安装这些依赖并在自定义扩展与模式中使用它们ohif-cli.md。包管理器的适配当前仓库使用pnpm作为工作区包管理器见根目录 pnpm-workspace.yaml。因此link-mode内部实际调用的是pnpm link而非文档早期示例中的yarn link相应地CLI 会先执行validatePnpm校验环境。如果你在旧版 yarn-only 的 OHIF 版本上使用命令行为会略有差异请以你所用版本的实际实现为准。总结模式安装的完整工作流结合源码与文档OHIF 模式的典型生命周期如下阶段命令关键动作创建yarn run cli create-mode交互式生成模式模板本地调试yarn run cli link-mode packageDirpnpm link 更新 webpack 配置 写入 pluginConfig在线安装yarn run cli add-mode packageName [version]校验ohif-mode关键字 → 安装 → 自动装依赖扩展查看yarn run cli list/yarn run cli search列出已装插件 / 检索 NPM 上的模式卸载yarn run cli remove-mode packageName卸载包 清理不再被引用的扩展解除链接yarn run cli unlink-mode modeName从查看器移除本地模式链接无论走哪条路径CLI 最终都会把模式的{ packageName, version }写入 platform/app/pluginConfig.json这就是查看器启动时识别并加载模式的唯一依据。掌握add-mode与link-mode两条安装路径你就能在本地开发与 NPM 分发两种场景下自由地为 OHIF 查看器接入自定义临床工作流。【免费下载链接】ViewersOHIF zero-footprint DICOM viewer and oncology specific Lesion Tracker, plus shared extension packages项目地址: https://gitcode.com/GitHub_Trending/vi/Viewers创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表