[OHIF-Viewers]医疗数字阅片-医学影像-学习开篇-程序员宅基地

技术标签: 历史笔记  

The OHIF Viewer is a zero-footprint medical image viewer provided by the Open Health Imaging Foundation (OHIF). It is a configurable and extensible progressive web application with out-of-the-box support for image archives which support DICOMweb.

GitHub开源地址:https://github.com/OHIF/Viewers

就不翻译了,中文部分是学习心得。

Introduction

The Open Health Imaging Foundation (OHIF) Viewer is an open source, web-based, medical imaging viewer. It can be configured to connect to Image Archives that support DicomWeb, and offers support for mapping to proprietary API formats. OHIF maintained extensions add support for viewing, annotating, and reporting on DICOM images in 2D (slices) and 3D (volumes).

OHIF Viewer Screenshot

The OHIF Viewer: A general purpose DICOM Viewer (Live Demo)

The Open Health Imaging Foundation intends to provide a simple general purpose DICOM Viewer which can be easily extended for specific uses. If you find yourself unable to extend the viewer for your purposes, please reach out via our GitHub issues. We are actively seeking feedback on ways to improve our integration and extension points.

Where to next?

Check out these helpful links:

Getting Started

Setup

Fork & Clone

If you intend to contribute back changes, or if you would like to pull updates we make to the OHIF Viewer, then follow these steps:

  • Fork the OHIF/Viewers repository
  • Create a local clone of your fork
    • git clone https://github.com/YOUR-USERNAME/Viewers
  • Add OHIF/Viewers as a remote repository labled upstream
    • Navigate to the cloned project's directory
    • git remote add upstream https://github.com/OHIF/Viewers.git

With this setup, you can now sync your fork to keep it up-to-date with the upstream (original) repository. This is called a "Triangular Workflow" and is common for Open Source projects. The GitHub blog has a good graphic that illustrates this setup.

Private

Alternatively, if you intend to use the OHIF Viewer as a starting point, and you aren't as concerned with syncing updates, then follow these steps:

  1. Navigate to the OHIF/Viewers repository
  2. Click Clone or download, and then Download ZIP
  3. Use the contents of the .zip file as a starting point for your viewer

NOTE: It is still possible to sync changes using this approach. However, submitting pull requests for fixes and features are best done with the separate, forked repository setup described in "Fork & Clone"

Developing

Requirements

  • Node.js & NPM
  • Yarn
  • Yarn workspaces should be enabled:
    • yarn config set workspaces-experimental true

Kick the tires

Navigate to the root of the project's directory in your terminal and run the following commands:

# Restore dependencies
yarn install

# Start local development server
yarn run dev

You should see the following output:

@ohif/viewer: i 「wds」: Project is running at http://localhost:3000/
@ohif/viewer: i 「wds」: webpack output is served from /
@ohif/viewer: i 「wds」: Content not from webpack is served from D:\code\ohif\Viewers\platform\viewer
@ohif/viewer: i 「wds」: 404s will fallback to /index.html# And a list of all generated files

Celebrate

development server hosted app  Our app, hosted by the development server

Building for Production

More comprehensive guides for building and publishing can be found in our deployment docs

# Build static assets to host a PWA
yarn run build

# Build packaged output (script-tag use)
yarn run build:package

Troubleshooting

  • If you receive a "No Studies Found" message and do not see your studies, try changing the Study Date filters to a wider range.
  • If you see a 'Loading' message which never resolves, check your browser JavaScript console inside the Developer Tools to identify any errors.

OHIF Medical Imaging Viewer

The OHIF Viewer is a zero-footprint medical image viewer provided by the Open Health Imaging Foundation (OHIF). It is a configurable and extensible progressive web application with out-of-the-box support for image archives which support DICOMweb.


NPM version NPM downloads Pulls MIT License FOSSA Status

Netlify Status CircleCI codecov This project is using Percy.io for visual regression testing. All Contributors

About

The OHIF Medical Imaging Viewer is for viewing medical images. It can retrieve and load images from most sources and formats; render sets in 2D, 3D, and reconstructed representations; allows for the manipulation, annotation, and serialization of observations; supports internationalization, OpenID Connect, offline use, hotkeys, and many more features.

Almost everything offers some degree of customization and configuration. If it doesn't support something you need, we accept pull requests and have an ever improving Extension System.

Why Choose Us

Community & Experience

The OHIF Viewer is a collaborative effort that has served as the basis for many active, production, and FDA Cleared medical imaging viewers. It benefits from our extensive community's collective experience, and from the sponsored contributions of individuals, research groups, and commercial organizations.

Built to Adapt

After more than 5-years of integrating with many companies and organizations, The OHIF Viewer has been rebuilt from the ground up to better address the varying workflow and configuration needs of its many users. All of the Viewer's core features are built using it's own extension system. The same extensibility that allows us to offer:

  • 2D and 3D medical image viewing
  • Multiplanar Reconstruction (MPR)
  • Maximum Intensity Project (MIP)
  • Whole slide microscopy viewing
  • PDF and Dicom Structured Report rendering
  • User Access Control (UAC)
  • Context specific toolbar and side panel content
  • and many others

Can be leveraged by you to customize the viewer for your workflow, and to add any new functionality you may need (and wish to maintain privately without forking).

Support

We offer support through GitHub Issues. You can:

For commercial support, academic collaberations, and answers to common questions; please read our documented FAQ.

Quick Start Deployment

This is only one of many ways to configure and deploy the OHIF Viewer. To learn more about your options, and how to choose the best one for your requirements, check out our deployment recipes and documentation.

The fastest and easiest way to get started is to include the OHIF Viewer with a script tag. In practice, this is as simple as:

  • Including the following dependencies with script tags:
  • Have an element with an ID of root on the page
  • Configure the OHIF Viewer at window.config:
window.config = {
  routerBasename: '/', servers: { dicomWeb: [ { name: 'DCM4CHEE', qidoRoot: 'https://server.dcmjs.org/dcm4chee-arc/aets/DCM4CHEE/rs', wadoRoot: 'https://server.dcmjs.org/dcm4chee-arc/aets/DCM4CHEE/rs', qidoSupportsIncludeField: true, imageRendering: 'wadors', thumbnailRendering: 'wadors', }, ], }, };
  • Install the viewer: window.OHIFViewer.installViewer(window.config);

This exact setup is demonstrated in this CodeSandbox and in our Embedding The Viewer deployment recipe.

Developing

Requirements

  • Yarn 1.17.3+
  • Node 10+
  • Yarn Workspaces should be enabled on your machine:
    • yarn config set workspaces-experimental true

Getting Started

  1. Fork this repository
  2. Clone your forked repository
    • git clone https://github.com/YOUR-USERNAME/Viewers.git
  3. Navigate to the cloned project's directory
  4. Add this repo as a remote named upstream
    • git remote add upstream https://github.com/OHIF/Viewers.git
  5. yarn install to restore dependencies and link projects
To Develop

From this repository's root directory:

# Enable Yarn Workspaces
yarn config set workspaces-experimental true

# Restore dependencies yarn install

Commands

These commands are available from the root directory. Each project directory also supports a number of commands that can be found in their respective README.md and project.json files.

Yarn Commands Description
Develop  
dev or start Default development experience for Viewer
dev:project <package-name> Replace with coreuii18ncornerstonevtk, etc.
test:unit Jest multi-project test runner; overall coverage
Deploy  
build* Builds production output for our PWA Viewer
build:package* Builds production commonjs output for our Viewer
build:package-all* Builds commonjs bundles for all projects

* - For more information on our different builds, check out our Deploy Docs

Projects

The OHIF Medical Image Viewing Platform is maintained as a monorepo. This means that this repository, instead of containing a single project, contains many projects. If you explore our project structure, you'll see the following:

.
├── extensions              #
│   ├── _example            # Skeleton of example extension
│   ├── cornerstone         # 2D images w/ Cornerstone.js │ ├── dicom-html # Structured Reports as HTML in viewport │ ├── dicom-microscopy # Whole slide microscopy viewing │ ├── dicom-pdf # View DICOM wrapped PDFs in viewport │ └── vtk # MPR and Volume support w/ VTK.js │ ├── platform # │ ├── core # Business Logic │ ├── i18n # Internationalization Support │ ├── ui # React component library │ └── viewer # Connects platform and extension projects │ ├── ... # misc. shared configuration ├── lerna.json # MonoRepo (Lerna) settings ├── package.json # Shared devDependencies and commands └── README.md # This file

Want to better understand why and how we've structured this repository? Read more about it in our Architecture Documentation.

Platform

These projects comprise the

Name Description Links
@ohif/core Business logic and classes that model the data, services, and extensions that are framework agnostic NPM
@ohif/i18n Language files and small API for wrapping component/ui text for translations NPM
@ohif/viewer The OHIF Viewer. Where we consume and configure all platform library's and extensions NPM
@ohif/ui Reusable React components we consume and compose to build our Viewer's UI NPM

Extensions

This is a list of Extensions maintained by the OHIF Core team. It's possible to customize and configure these extensions, and you can even create your own. You can read more about extensions here.

Name Description Links
@ohif/extension-cornestone 2D image viewing, annotation, and segementation tools NPM
@ohif/extension-dicom-html Support for viewing DICOM SR as rendered HTML NPM
@ohif/extension-dicom-microscopy Whole slide microscopy viewing NPM
@ohif/extension-dicom-pdf View DICOM wrapped PDFs in a viewport NPM
@ohif/extension-vtk Volume rendering, reconstruction, and 3D visualizations NPM

Acknowledgments

To acknowledge the OHIF Viewer in an academic publication, please cite

LesionTracker: Extensible Open-Source Zero-Footprint Web Viewer for Cancer Imaging Research and Clinical Trials

Trinity Urban, Erik Ziegler, Rob Lewis, Chris Hafey, Cheryl Sadow, Annick D. Van den Abbeele and Gordon J. Harris

Cancer Research, November 1 2017 (77) (21) e119-e122 DOI: 10.1158/0008-5472.CAN-17-0334

Note: If you use or find this repository helpful, please take the time to star this repository on Github. This is an easy way for us to assess adoption and it can help us obtain future funding for the project.

This work is supported primarily by the National Institutes of Health, National Cancer Institute, Informatics Technology for Cancer Research (ITCR) program, under a grant to Dr. Gordon Harris at Massachusetts General Hospital (U24 CA199460).

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_30895047/article/details/107097306

智能推荐

使用nginx解决浏览器跨域问题_nginx不停的xhr-程序员宅基地

文章浏览阅读1k次。通过使用ajax方法跨域请求是浏览器所不允许的,浏览器出于安全考虑是禁止的。警告信息如下:不过jQuery对跨域问题也有解决方案,使用jsonp的方式解决,方法如下:$.ajax({ async:false, url: 'http://www.mysite.com/demo.do', // 跨域URL ty..._nginx不停的xhr

在 Oracle 中配置 extproc 以访问 ST_Geometry-程序员宅基地

文章浏览阅读2k次。关于在 Oracle 中配置 extproc 以访问 ST_Geometry,也就是我们所说的 使用空间SQL 的方法,官方文档链接如下。http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/gdbs-in-oracle/configure-oracle-extproc.htm其实简单总结一下,主要就分为以下几个步骤。..._extproc

Linux C++ gbk转为utf-8_linux c++ gbk->utf8-程序员宅基地

文章浏览阅读1.5w次。linux下没有上面的两个函数,需要使用函数 mbstowcs和wcstombsmbstowcs将多字节编码转换为宽字节编码wcstombs将宽字节编码转换为多字节编码这两个函数,转换过程中受到系统编码类型的影响,需要通过设置来设定转换前和转换后的编码类型。通过函数setlocale进行系统编码的设置。linux下输入命名locale -a查看系统支持的编码_linux c++ gbk->utf8

IMP-00009: 导出文件异常结束-程序员宅基地

文章浏览阅读750次。今天准备从生产库向测试库进行数据导入,结果在imp导入的时候遇到“ IMP-00009:导出文件异常结束” 错误,google一下,发现可能有如下原因导致imp的数据太大,没有写buffer和commit两个数据库字符集不同从低版本exp的dmp文件,向高版本imp导出的dmp文件出错传输dmp文件时,文件损坏解决办法:imp时指定..._imp-00009导出文件异常结束

python程序员需要深入掌握的技能_Python用数据说明程序员需要掌握的技能-程序员宅基地

文章浏览阅读143次。当下是一个大数据的时代,各个行业都离不开数据的支持。因此,网络爬虫就应运而生。网络爬虫当下最为火热的是Python,Python开发爬虫相对简单,而且功能库相当完善,力压众多开发语言。本次教程我们爬取前程无忧的招聘信息来分析Python程序员需要掌握那些编程技术。首先在谷歌浏览器打开前程无忧的首页,按F12打开浏览器的开发者工具。浏览器开发者工具是用于捕捉网站的请求信息,通过分析请求信息可以了解请..._初级python程序员能力要求

Spring @Service生成bean名称的规则(当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致)_@service beanname-程序员宅基地

文章浏览阅读7.6k次,点赞2次,收藏6次。@Service标注的bean,类名:ABDemoService查看源码后发现,原来是经过一个特殊处理:当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致public class AnnotationBeanNameGenerator implements BeanNameGenerator { private static final String C..._@service beanname

随便推点

二叉树的各种创建方法_二叉树的建立-程序员宅基地

文章浏览阅读6.9w次,点赞73次,收藏463次。1.前序创建#include&lt;stdio.h&gt;#include&lt;string.h&gt;#include&lt;stdlib.h&gt;#include&lt;malloc.h&gt;#include&lt;iostream&gt;#include&lt;stack&gt;#include&lt;queue&gt;using namespace std;typed_二叉树的建立

解决asp.net导出excel时中文文件名乱码_asp.net utf8 导出中文字符乱码-程序员宅基地

文章浏览阅读7.1k次。在Asp.net上使用Excel导出功能,如果文件名出现中文,便会以乱码视之。 解决方法: fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);_asp.net utf8 导出中文字符乱码

笔记-编译原理-实验一-词法分析器设计_对pl/0作以下修改扩充。增加单词-程序员宅基地

文章浏览阅读2.1k次,点赞4次,收藏23次。第一次实验 词法分析实验报告设计思想词法分析的主要任务是根据文法的词汇表以及对应约定的编码进行一定的识别,找出文件中所有的合法的单词,并给出一定的信息作为最后的结果,用于后续语法分析程序的使用;本实验针对 PL/0 语言 的文法、词汇表编写一个词法分析程序,对于每个单词根据词汇表输出: (单词种类, 单词的值) 二元对。词汇表:种别编码单词符号助记符0beginb..._对pl/0作以下修改扩充。增加单词

android adb shell 权限,android adb shell权限被拒绝-程序员宅基地

文章浏览阅读773次。我在使用adb.exe时遇到了麻烦.我想使用与bash相同的adb.exe shell提示符,所以我决定更改默认的bash二进制文件(当然二进制文件是交叉编译的,一切都很完美)更改bash二进制文件遵循以下顺序> adb remount> adb push bash / system / bin /> adb shell> cd / system / bin> chm..._adb shell mv 权限

投影仪-相机标定_相机-投影仪标定-程序员宅基地

文章浏览阅读6.8k次,点赞12次,收藏125次。1. 单目相机标定引言相机标定已经研究多年,标定的算法可以分为基于摄影测量的标定和自标定。其中,应用最为广泛的还是张正友标定法。这是一种简单灵活、高鲁棒性、低成本的相机标定算法。仅需要一台相机和一块平面标定板构建相机标定系统,在标定过程中,相机拍摄多个角度下(至少两个角度,推荐10~20个角度)的标定板图像(相机和标定板都可以移动),即可对相机的内外参数进行标定。下面介绍张氏标定法(以下也这么称呼)的原理。原理相机模型和单应矩阵相机标定,就是对相机的内外参数进行计算的过程,从而得到物体到图像的投影_相机-投影仪标定

Wayland架构、渲染、硬件支持-程序员宅基地

文章浏览阅读2.2k次。文章目录Wayland 架构Wayland 渲染Wayland的 硬件支持简 述: 翻译一篇关于和 wayland 有关的技术文章, 其英文标题为Wayland Architecture .Wayland 架构若是想要更好的理解 Wayland 架构及其与 X (X11 or X Window System) 结构;一种很好的方法是将事件从输入设备就开始跟踪, 查看期间所有的屏幕上出现的变化。这就是我们现在对 X 的理解。 内核是从一个输入设备中获取一个事件,并通过 evdev 输入_wayland

推荐文章

热门文章

相关标签