OHIF Viewer 基础查看器的相关

2024-09-02 11:44

本文主要是介绍OHIF Viewer 基础查看器的相关,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

新版的ohif  封装的很好,跟3.8版本的  viewer 修改成app   ui组件进行了整改

3.9版本的更新

OHIF Viewer 3.9 相对于 3.8 版本进行了多项改进和更新。以下是一些主要的改进点:

1. 性能优化:

  • 在 3.9 版本中,团队对性能进行了优化,特别是针对大型数据集的加载和渲染速度,减少了延迟,提升了用户体验。

2. 改进的用户界面(UI):

  • 3.9 版本对用户界面进行了细微调整,使界面更直观易用,尤其是在工具栏和面板的布局方面进行了优化。

  • 工具栏的按钮和图标更清晰,用户可以更方便地找到所需功能。

3. 工具栏的灵活性:

  • 在 3.9 版本中,工具栏的自定义功能得到了增强。开发者可以更容易地添加或移除工具,以及调整工具栏的布局。

  • 此外,还增加了对工具栏中工具的排列和显示方式的改进,比如能够更灵活地支持横向或纵向布局。

4. 改进的插件系统:

  • 3.9 版本对插件系统进行了增强,开发者可以更轻松地集成第三方插件或扩展功能。插件的加载和配置变得更加简便和直观。

5. Bug 修复:

  • 修复了 3.8 版本中一些已知的问题和 Bug,特别是在图像渲染、工具交互和性能方面的 Bug。

6. 新功能引入:

  • 在 3.9 版本中,可能引入了一些新功能或增强现有功能,例如改进的影像处理工具、更好的 DICOM 数据支持等(具体功能会随更新日志发布)。

7. 代码结构优化:

  • 3.9 版本可能在代码层面进行了重构和优化,使项目的可维护性和可扩展性得到了提升。

要了解这些改进的具体细节,可以查看 3.9 版本的发布说明(Release Notes)或更新日志。如果你需要更详细的某个特定方面的改进信息,可以查看官方文档或更新记录。

自定义组件库

在@ohif/ui 加自定义的组件

第一步

先在platform\ui\src\components  中新建一个文件夹 ,就是你组件的名字,里面一个js   一个tsx   

第二步

tsx文件里面写好配置

第三步

js文件里 导出去

第四步

在platform\ui\src\components\index.js  配好  自己新加的组件

第五步

在  platform\ui\src\index.js  导出你的UI组件

页面布局

ViewerLayout组件用于构建一个布局,该布局包含了医学图像查看器的各种界面元素,* 比如视口、侧边栏、工具栏等。它根据传入的参数动态渲染这些界面元素。
extensions->default->src -> ViewerLayout 

标题栏

import ViewerHeader from './ViewerHeader';
//组件
extensions\default\src\ViewerLayout\ViewerHeader.tsx

extensions\default\src\Toolbar\Toolbar.tsx
控制中间工具
工具类@ohif/ui 组件库里的
platform\ui\src\components\Header\Header.tsx

标题栏的组成

右侧面板 —— 左侧面板

SidePanelWithServicesimport SidePanelWithServices from '../Components/SidePanelWithServices';    
//extensions  ->   default    ->    src   ->  components    - >  SidePanelWithServices//定义带有服务集成的侧边面板组件的属性类型
Viewers-master\extensions\default\src\Components\SidePanelWithServices.tsx
import { SidePanel } from '@ohif/ui'; //组件库@ohif/ui  组件库
Viewers-master\platform\ui\src\components
@ohif/core  业务逻辑核心PanelService
platform\core\src\services\PanelService\PanelService.tsx

折叠面板的按钮

platform\ui\src\components\SidePanel\SidePanel.tsx// 折叠面板的按钮const getOpenStateComponent = () => {return null;// (//   // <div className="bg-primary-dark flex select-none rounded-t pt-1.5 pb-[2px]">//   //   {getCloseIcon()}//   //   {tabs.length === 1 ? getOneTabComponent() : getTabGridComponent()}//   // </div>// );};

缩略图 组件

platform\ui\src\components\Thumbnail\Thumbnail.tsx

左侧折叠面板的标签页按钮

platform\ui\src\components\StudyBrowser\StudyBrowser.tsx{/* 标签页按钮组 */}{/* TODO Revisit design of LegacyButtonGroup later - for now use LegacyButton for its children.*/}{/* <divclassName="w-100 border-secondary-light bg-primary-dark flex h-20 flex-col items-center justify-center gap-2 border-b p-4"data-cy={'studyBrowser-panel'}><LegacyButtonGroupvariant="outlined"color="secondary"splitBorder={false}>{tabs.map(tab => {const { name, label, studies } = tab;const isActive = activeTabName === name;const isDisabled = !studies.length;// 从定制服务中获取按钮颜色配置const classStudyBrowser = customizationService?.getModeCustomization('class:StudyBrowser') || {true: 'default',false: 'default',};const color = classStudyBrowser[`${isActive}`];return (<LegacyButtonkey={name}className={'min-w-18 p-2 text-base text-white'}size="initial"color={color}bgColor={isActive ? 'bg-primary-main' : 'bg-black'}onClick={() => {onClickTab(name);}}disabled={isDisabled}>{t(label)}</LegacyButton>);})}</LegacyButtonGroup>{experimentalStudyBrowserSort && <StudyBrowserSort servicesManager={servicesManager} />}</div> */}

折叠面板的统计信息

platform\ui\src\components\StudyBrowser\StudyBrowser.tsx<StudyItemdate={date}description={description}numInstances={numInstances}modalities={modalities}trackedSeries={getTrackedSeries(displaySets)}isActive={isExpanded}onClick={() => {onClickStudy(studyInstanceUid);}}data-cy="thumbnail-list"/>

中间的查看器

找这个组件 位置应该在

       '@components': path.resolve(__dirname, '../platform/app/src/components')
//名字是   ViewportGrid

中间展示dicom 片子的 组件 应该是

platform\ui\src\components\ViewportGrid\ViewportGrid.tsx

F12里面找中间影像的类名      ---------------viewport-wrapper
extensions\cornerstone\src\Viewport\OHIFCornerstoneViewport.tsx
{/* 中间影响的滚动条,和  上面的文字 */}CornerstoneOverlays  ----------  这个组件

  {/* OHIFViewportActionCorners 在 DOM 中跟随视口,以便自然地处于更高的 z-index。 */}{/* 这个是右上角的那个小设置 */}<OHIFViewportActionCorners viewportId={viewportId} />

展示的片子的时间等数据

extensions\cornerstone\src\Viewport\Overlays\CornerstoneOverlays.tsx

有哪里不对,记得告诉我一声

这篇关于OHIF Viewer 基础查看器的相关的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1129863

相关文章

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

log4j2相关配置说明以及${sys:catalina.home}应用

${sys:catalina.home} 等价于 System.getProperty("catalina.home") 就是Tomcat的根目录:  C:\apache-tomcat-7.0.77 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> 2017-08-10

Node Linux相关安装

下载经编译好的文件cd /optwget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.gztar -xvf node-v10.15.3-linux-x64.tar.gzln -s /opt/node-v10.15.3-linux-x64/bin/npm /usr/local/bin/ln -s /opt/nod

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显

C 语言基础之数组

文章目录 什么是数组数组变量的声明多维数组 什么是数组 数组,顾名思义,就是一组数。 假如班上有 30 个同学,让你编程统计每个人的分数,求最高分、最低分、平均分等。如果不知道数组,你只能这样写代码: int ZhangSan_score = 95;int LiSi_score = 90;......int LiuDong_score = 100;int Zhou