From 2f4b3cd6b783d0aee8f83bf687caf8295a9da87b Mon Sep 17 00:00:00 2001 From: dannyrb Date: Thu, 18 Apr 2019 15:52:36 -0400 Subject: [PATCH 01/39] OHIF maintained extensions --- .../_maintained-extensions-table.md | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 docs/latest/architecture/_maintained-extensions-table.md diff --git a/docs/latest/architecture/_maintained-extensions-table.md b/docs/latest/architecture/_maintained-extensions-table.md new file mode 100644 index 000000000..41c0c60f7 --- /dev/null +++ b/docs/latest/architecture/_maintained-extensions-table.md @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ExtensionDescriptionModules
+ + Cornerstone + + + A viewport powered by cornerstone.js. Adds support for 2D DICOM rendering and manipulation, as well as support for the tools features in cornerstone-tools. Also adds "CINE Dialog" to the Toolbar. + Viewport, Toolbar
+ + VTK.js + + + A viewport powered by vtk.js. Adds support for volume renderings and advanced features like MPR. Also adds "3D Rotate" to the Toolbar. + Viewport, Toolbar
+ HTML + + Renders text and HTML content for specific SopClassUIDs. + Viewport, SopClassHandler
+ PDF + + Renders PDFs for a specific SopClassUID. + Viewport, SopClassHandler
+ Microscopy + + Renders Microscopy images for a specific SopClassUID. + Viewport, SopClassHandler
\ No newline at end of file From 464cb02b5e9d9cdb1cc5470a6b06610a34c217b1 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Thu, 18 Apr 2019 17:01:35 -0400 Subject: [PATCH 02/39] Rough notes, extensions --- docs/latest/architecture/extensions.md | 94 ++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 docs/latest/architecture/extensions.md diff --git a/docs/latest/architecture/extensions.md b/docs/latest/architecture/extensions.md new file mode 100644 index 000000000..adf47f46d --- /dev/null +++ b/docs/latest/architecture/extensions.md @@ -0,0 +1,94 @@ +# Extensions + +Extensions are a way to add powerful They do this through An extension can be added through the `ExtensionManager` exposed by `ohif-core`. Common + +## Custom Extensions + +At a glance, an extension is a class or object that has a `getExtensionId()` method, and one or more "module" methods that are used to register a specific kind of functionality. You can read more about each kind of "module" below. + +```js +class myCustomExtension { + + /** Required */ + getExtensionId: () => 'my-extension-id'; + + /** React component that receives props from ConnectLayoutManager + * If more than one viewport module is registered, SopClassHandler + * is used to help determine which component is used */ + getViewportModule: () => reactViewportComponent; + + /** React component that adds buttons/behavior to the viewer Toolbar */ + getToolbarModule: () => reactToolbarComponent; + + /** Provides a whitelist of SOPClassUIDs the viewport is capable of rendering. + * Can modify default behavior for methods like `getDisplaySetFromSeries` */ + getSopClassHandler: () => { + id: 'some-other-unique-id', + type: PLUGIN_TYPES.SOP_CLASS_HANDLER, + sopClassUids: ['string'], + getDisplaySetFromSeries: (series, study, dicomWebClient, authorizationHeaders) => ... + }; + + // Not yet used + getPanelModule: () => null; +} +``` + +### Modules + +#### Viewport + +... + +#### Toolbar + +... + +#### SopClassHandler + +... + +#### Panel + +... + + +## OHIF Maintained Extensions + +A small number of powerful extensions for popular use cases are maintained by OHIF. They're co-located in the [`OHIF/Viewers`](https://github.com/OHIF/Viewers/tree/react/) repository, in the top level [`extensions/`](https://github.com/OHIF/Viewers/tree/react/extensions) directory. + + +{% include "./_maintained-extensions-table.md" %} + +[extension types](https://github.com/OHIF/ohif-core/blob/master/src/plugins.js#L1-L6) + +Interface: +- getExtensionId() +- "types" (modules on extension) + - getViewport() + - getToolbar() + - getPanel() + - getSop_Class_Handler() + +calls: (for each module on extension) +``` +store.dispatch(addPlugin({ + id: extensionId, + type: PLUGIN_TYPE, + component: getViewport() --> Viewport Component +})) +``` + +({ + type: 'ADD_PLUGIN', + plugin +}) + +https://github.com/OHIF/ohif-core/blob/43c08a29eff3fb646a0e83a03a236ddd84f4a6e8/src/redux/reducers/plugins.js#L7-L30 + +- Connected Layout Manager + - AvailablePlugins that match Viewport type + +ToolbarRow + - AvailablePlugins that match Toolbar type + From 13496911bcdac8f52e419f23c3c4ce070b34a1d7 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Fri, 19 Apr 2019 00:59:46 -0400 Subject: [PATCH 03/39] Shift to advanced folder --- .../_maintained-extensions-table.md | 0 docs/latest/advanced/extensions.md | 103 ++++++++++++++++++ docs/latest/advanced/index.md | 3 + docs/latest/architecture/extensions.md | 94 ---------------- 4 files changed, 106 insertions(+), 94 deletions(-) rename docs/latest/{architecture => advanced}/_maintained-extensions-table.md (100%) create mode 100644 docs/latest/advanced/extensions.md create mode 100644 docs/latest/advanced/index.md delete mode 100644 docs/latest/architecture/extensions.md diff --git a/docs/latest/architecture/_maintained-extensions-table.md b/docs/latest/advanced/_maintained-extensions-table.md similarity index 100% rename from docs/latest/architecture/_maintained-extensions-table.md rename to docs/latest/advanced/_maintained-extensions-table.md diff --git a/docs/latest/advanced/extensions.md b/docs/latest/advanced/extensions.md new file mode 100644 index 000000000..c858d7f94 --- /dev/null +++ b/docs/latest/advanced/extensions.md @@ -0,0 +1,103 @@ +# Extensions + +Extensions add new functionality to the viewer by extending existing functionality. This can be something as simple as adding a new button to the toolbar, or as complex as a new viewport capable of rendering volumes in 3D. + +## Overview + +At a glance, an extension is a class or object that has a `getExtensionId()` method, and one or more "module" methods. You can find an abbreviated extension below, or [view the source](https://github.com/OHIF/Viewers/blob/react/extensions/ohif-cornerstone-extension/src/OHIFCornerstoneExtension.js#L32-L65) of our `cornerstone` viewport extension. + +```js +class myCustomExtension { + + /** Required */ + getExtensionId: () => 'my-extension-id'; + + /** React component that receives props from ConnectLayoutManager + * If more than one viewport module is registered, SopClassHandler + * is used to help determine which component is used */ + getViewportModule: () => reactViewportComponent; + + /** React component that adds buttons/behavior to the viewer Toolbar */ + getToolbarModule: () => reactToolbarComponent; + + /** Provides a whitelist of SOPClassUIDs the viewport is capable of rendering. + * Can modify default behavior for methods like `getDisplaySetFromSeries` */ + getSopClassHandler: () => { + id: 'some-other-unique-id', + type: PLUGIN_TYPES.SOP_CLASS_HANDLER, + sopClassUids: ['string'], + getDisplaySetFromSeries: (series, study, dicomWebClient, authorizationHeaders) => ... + }; + + // Not yet used + getPanelModule: () => null; +} +``` + +### Modules + +Modules, or [PLUGIN_TYPES](https://github.com/OHIF/ohif-core/blob/43c08a29eff3fb646a0e83a03a236ddd84f4a6e8/src/plugins.js#L1-L6), help us determine where, when, and how a plugin should be used. For example, + +#### Viewport + +A React Component + +```js + studies: PropTypes.object, + displaySet: PropTypes.object, + viewportIndex: PropTypes.number, + children: PropTypes.node, + customProps: PropTypes.object +``` + +#### Toolbar + +... + +#### SopClassHandler + +... + +#### Panel + +... + +### Registering Extensions + +Extensions are registered for the application at startup. The `ExtensionManager`, exposed by `ohif-core`, registers a list of extensions with our application's store. Each module provided by the extension becomes available via `state.plugins.availablePlugins`, and consists of three parts: id, type (PLUGIN_TYPE), and the return value of the module method. + +In a future version, we will likely expose a way to provide the extensions you would like included at startup. + +_app.js_ +```js +import { createStore, combineReducers } from 'redux'; +import OHIF from 'ohif-core'; +import OHIFCornerstoneExtension from 'ohif-cornerstone-extension'; + +const combined = combineReducers(OHIF.redux.reducers); +const store = createStore(combined); +const extensions = [ new OHIFCornerstoneExtension() ]; + +// Dispatches the `addPlugin` action to the store +// Adding extension modules to `state.plugins.availablePlugins` +ExtensionManager.registerExtensions(store, extensions); +``` + + +## OHIF Maintained Extensions + +A small number of powerful extensions for popular use cases are maintained by OHIF. They're co-located in the [`OHIF/Viewers`](https://github.com/OHIF/Viewers/tree/react/) repository, in the top level [`extensions/`](https://github.com/OHIF/Viewers/tree/react/extensions) directory. + + +{% include "./_maintained-extensions-table.md" %} + + + +https://github.com/OHIF/ohif-core/blob/43c08a29eff3fb646a0e83a03a236ddd84f4a6e8/src/redux/reducers/plugins.js#L7-L30 + +- Connected Layout Manager + - AvailablePlugins that match Viewport type + +ToolbarRow + - AvailablePlugins that match Toolbar type + diff --git a/docs/latest/advanced/index.md b/docs/latest/advanced/index.md new file mode 100644 index 000000000..14ba220d6 --- /dev/null +++ b/docs/latest/advanced/index.md @@ -0,0 +1,3 @@ +# Advanced + +Advanced topics are geared toward individuals that want a deeper understanding of the viewer's architecture. \ No newline at end of file diff --git a/docs/latest/architecture/extensions.md b/docs/latest/architecture/extensions.md deleted file mode 100644 index adf47f46d..000000000 --- a/docs/latest/architecture/extensions.md +++ /dev/null @@ -1,94 +0,0 @@ -# Extensions - -Extensions are a way to add powerful They do this through An extension can be added through the `ExtensionManager` exposed by `ohif-core`. Common - -## Custom Extensions - -At a glance, an extension is a class or object that has a `getExtensionId()` method, and one or more "module" methods that are used to register a specific kind of functionality. You can read more about each kind of "module" below. - -```js -class myCustomExtension { - - /** Required */ - getExtensionId: () => 'my-extension-id'; - - /** React component that receives props from ConnectLayoutManager - * If more than one viewport module is registered, SopClassHandler - * is used to help determine which component is used */ - getViewportModule: () => reactViewportComponent; - - /** React component that adds buttons/behavior to the viewer Toolbar */ - getToolbarModule: () => reactToolbarComponent; - - /** Provides a whitelist of SOPClassUIDs the viewport is capable of rendering. - * Can modify default behavior for methods like `getDisplaySetFromSeries` */ - getSopClassHandler: () => { - id: 'some-other-unique-id', - type: PLUGIN_TYPES.SOP_CLASS_HANDLER, - sopClassUids: ['string'], - getDisplaySetFromSeries: (series, study, dicomWebClient, authorizationHeaders) => ... - }; - - // Not yet used - getPanelModule: () => null; -} -``` - -### Modules - -#### Viewport - -... - -#### Toolbar - -... - -#### SopClassHandler - -... - -#### Panel - -... - - -## OHIF Maintained Extensions - -A small number of powerful extensions for popular use cases are maintained by OHIF. They're co-located in the [`OHIF/Viewers`](https://github.com/OHIF/Viewers/tree/react/) repository, in the top level [`extensions/`](https://github.com/OHIF/Viewers/tree/react/extensions) directory. - - -{% include "./_maintained-extensions-table.md" %} - -[extension types](https://github.com/OHIF/ohif-core/blob/master/src/plugins.js#L1-L6) - -Interface: -- getExtensionId() -- "types" (modules on extension) - - getViewport() - - getToolbar() - - getPanel() - - getSop_Class_Handler() - -calls: (for each module on extension) -``` -store.dispatch(addPlugin({ - id: extensionId, - type: PLUGIN_TYPE, - component: getViewport() --> Viewport Component -})) -``` - -({ - type: 'ADD_PLUGIN', - plugin -}) - -https://github.com/OHIF/ohif-core/blob/43c08a29eff3fb646a0e83a03a236ddd84f4a6e8/src/redux/reducers/plugins.js#L7-L30 - -- Connected Layout Manager - - AvailablePlugins that match Viewport type - -ToolbarRow - - AvailablePlugins that match Toolbar type - From d6c0305a3eb50710dd085a99c9fcaaf4822e4afe Mon Sep 17 00:00:00 2001 From: dannyrb Date: Fri, 19 Apr 2019 01:04:02 -0400 Subject: [PATCH 04/39] Play with new menu ordering --- docs/latest/SUMMARY.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/latest/SUMMARY.md b/docs/latest/SUMMARY.md index 58aabd9e2..d3f64afc1 100644 --- a/docs/latest/SUMMARY.md +++ b/docs/latest/SUMMARY.md @@ -4,6 +4,16 @@ - [Getting Started](essentials/getting-started.md) - [Troubleshooting](essentials/troubleshooting.md) - [Architecture](architecture/index.md) + - Overview +- Deployment + +--- +- [Advanced](advanced/index.md) +- [Extensions](advanced/extensions.md) + - [Overview](advanced/extensions.md#overview) + - [Custom Extensions](advanced/extensions.md#custom-extensions) + - [OHIF Maintained Extensions](advanced/extensions.md#ohif-maintained-extensions) + - Connecting to Image Archives - [DICOM Web](connecting-to-image-archives/dicomweb.md) From 1c08604fbb187946f0ee8c3982d710b7da72faf4 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Fri, 19 Apr 2019 01:10:41 -0400 Subject: [PATCH 05/39] Remove custom extensions as it's just an overview of what an extension is --- docs/latest/SUMMARY.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/latest/SUMMARY.md b/docs/latest/SUMMARY.md index d3f64afc1..e69f841c5 100644 --- a/docs/latest/SUMMARY.md +++ b/docs/latest/SUMMARY.md @@ -11,7 +11,8 @@ - [Advanced](advanced/index.md) - [Extensions](advanced/extensions.md) - [Overview](advanced/extensions.md#overview) - - [Custom Extensions](advanced/extensions.md#custom-extensions) + - [Modules](advanced/extensions.md#modules) + - [Registering](advanced/extensions.md#registering-extensions) - [OHIF Maintained Extensions](advanced/extensions.md#ohif-maintained-extensions) - Connecting to Image Archives From 312e300ffc178b313247992ff7d268423d26c5ee Mon Sep 17 00:00:00 2001 From: dannyrb Date: Fri, 19 Apr 2019 10:44:46 -0400 Subject: [PATCH 06/39] Update sidebar for extensions links --- docs/latest/SUMMARY.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/latest/SUMMARY.md b/docs/latest/SUMMARY.md index d3f64afc1..7e7cf08d0 100644 --- a/docs/latest/SUMMARY.md +++ b/docs/latest/SUMMARY.md @@ -11,8 +11,9 @@ - [Advanced](advanced/index.md) - [Extensions](advanced/extensions.md) - [Overview](advanced/extensions.md#overview) - - [Custom Extensions](advanced/extensions.md#custom-extensions) - - [OHIF Maintained Extensions](advanced/extensions.md#ohif-maintained-extensions) + - [Modules](advanced/extensions.md#modules) + - [Registering](advanced/extensions.md#registering-extensions) + - [OHIF Maintained](advanced/extensions.md#ohif-maintained-extensions) - Connecting to Image Archives - [DICOM Web](connecting-to-image-archives/dicomweb.md) From 38b31984ae6f20d1ca9f69d2fe5b954100116519 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Fri, 19 Apr 2019 10:45:09 -0400 Subject: [PATCH 07/39] Quick readme on how to write/dev docs --- docs/README.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs/README.md diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 000000000..1d31fbe36 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,46 @@ +# How To: Documentation Step-by-Step + +We use [GitBook](https://www.gitbook.com/) to create our documentation. It primarily uses markdown, html, css, js, misc. plugins, and configuration to generate high quality, easy to read, and easy to maintain documentation. + +## Getting Started + +_Requirements:_ + +Make sure you have the [`gitbook-cli`](https://www.npmjs.com/package/gitbook-cli) installed globally: + +> `npm install -g gitbook-cli` + +### Editing and Previewing Changes + +Currently, you can only edit and preview a single "book" at a time. We maintain one "book" per API major version. You can find each version's book at: + +_Past Versions:_ + +- Template: + - `/docs/v` +- Examples: + - `/docs/v1` + - `/docs/v2` + +_Latest Version:_ + +The latest version will always be located in `/docs/latest` + +_Live Preview:_ + +In your terminal / command prompt: + +```bash +cd /docs/latest +gitbook install +gitbook serve +``` + +Which should generate output like: + +> starting server... +> serving book on http://localhost:4000 + +Navigating to the the provided URL will show a preview of what the generated book should look like. Any edits you make to the book's markdown files should automatically update in your browser. + +### Publishing From 29abad4a24dbaffacb9439d38f25e7730e45a18d Mon Sep 17 00:00:00 2001 From: dannyrb Date: Fri, 19 Apr 2019 10:45:22 -0400 Subject: [PATCH 08/39] Remove unused import --- .../ohif-cornerstone-extension/src/OHIFCornerstoneViewport.js | 1 - 1 file changed, 1 deletion(-) diff --git a/extensions/ohif-cornerstone-extension/src/OHIFCornerstoneViewport.js b/extensions/ohif-cornerstone-extension/src/OHIFCornerstoneViewport.js index fb458d11b..c76b99c50 100644 --- a/extensions/ohif-cornerstone-extension/src/OHIFCornerstoneViewport.js +++ b/extensions/ohif-cornerstone-extension/src/OHIFCornerstoneViewport.js @@ -2,7 +2,6 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; import OHIF from 'ohif-core'; import ConnectedCornerstoneViewport from './ConnectedCornerstoneViewport'; -import cornerstoneTools from 'cornerstone-tools'; import cornerstone from 'cornerstone-core'; import './config'; import handleSegmentationStorage from './handleSegmentationStorage.js'; From 41d6e0d7ca561d42544d99058832b0eb47f36b26 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Fri, 19 Apr 2019 10:45:40 -0400 Subject: [PATCH 09/39] Docs for Viewport Module --- docs/latest/advanced/extensions.md | 29 ++++++++++++------ .../latest/assets/img/extensions-viewport.png | Bin 0 -> 150423 bytes 2 files changed, 20 insertions(+), 9 deletions(-) create mode 100644 docs/latest/assets/img/extensions-viewport.png diff --git a/docs/latest/advanced/extensions.md b/docs/latest/advanced/extensions.md index c858d7f94..672914671 100644 --- a/docs/latest/advanced/extensions.md +++ b/docs/latest/advanced/extensions.md @@ -40,16 +40,29 @@ Modules, or [PLUGIN_TYPES](https://github.com/OHIF/ohif-core/blob/43c08a29eff3fb #### Viewport -A React Component +An extension can register a Viewport Module by providing a `getViewportModule()` method that returns a React Component. The React component will receive the following props: ```js - studies: PropTypes.object, - displaySet: PropTypes.object, - viewportIndex: PropTypes.number, - children: PropTypes.node, - customProps: PropTypes.object +children: PropTypes.arrayOf(PropTypes.element) +studies: PropTypes.object, +displaySet: PropTypes.object, +viewportData: PropTypes.object, // { studies, displaySet } +viewportIndex: PropTypes.number, +children: PropTypes.node, +customProps: PropTypes.object ``` +Viewport components are managed by the `LayoutManager`. Which Viewport component is used depends on: + +- The Layout Configuration +- Registered SopClassHandlers +- The SopClassUID for visible/selected datasets + +![Lesion Tracker Screenshot](../assets/img/extensions-viewport.png) +
An example of three Viewports
+ +For a complete example implementation, [check out the OHIFCornerstoneViewport](https://github.com/OHIF/Viewers/blob/react/extensions/ohif-cornerstone-extension/src/OHIFCornerstoneViewport.js). + #### Toolbar ... @@ -69,6 +82,7 @@ Extensions are registered for the application at startup. The `ExtensionManager` In a future version, we will likely expose a way to provide the extensions you would like included at startup. _app.js_ + ```js import { createStore, combineReducers } from 'redux'; import OHIF from 'ohif-core'; @@ -83,16 +97,13 @@ const extensions = [ new OHIFCornerstoneExtension() ]; ExtensionManager.registerExtensions(store, extensions); ``` - ## OHIF Maintained Extensions A small number of powerful extensions for popular use cases are maintained by OHIF. They're co-located in the [`OHIF/Viewers`](https://github.com/OHIF/Viewers/tree/react/) repository, in the top level [`extensions/`](https://github.com/OHIF/Viewers/tree/react/extensions) directory. - {% include "./_maintained-extensions-table.md" %} - https://github.com/OHIF/ohif-core/blob/43c08a29eff3fb646a0e83a03a236ddd84f4a6e8/src/redux/reducers/plugins.js#L7-L30 - Connected Layout Manager diff --git a/docs/latest/assets/img/extensions-viewport.png b/docs/latest/assets/img/extensions-viewport.png new file mode 100644 index 0000000000000000000000000000000000000000..0ecffda06936f0a12ecb915348fa7701ac26e126 GIT binary patch literal 150423 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%0A&?jWi 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 Date: Fri, 19 Apr 2019 12:41:25 -0400 Subject: [PATCH 10/39] Add toolbar section --- docs/latest/advanced/extensions.md | 27 ++++++++---------- docs/latest/assets/img/extensions-toolbar.gif | Bin 0 -> 37690 bytes 2 files changed, 12 insertions(+), 15 deletions(-) create mode 100644 docs/latest/assets/img/extensions-toolbar.gif diff --git a/docs/latest/advanced/extensions.md b/docs/latest/advanced/extensions.md index 672914671..ee65d9152 100644 --- a/docs/latest/advanced/extensions.md +++ b/docs/latest/advanced/extensions.md @@ -36,7 +36,7 @@ class myCustomExtension { ### Modules -Modules, or [PLUGIN_TYPES](https://github.com/OHIF/ohif-core/blob/43c08a29eff3fb646a0e83a03a236ddd84f4a6e8/src/plugins.js#L1-L6), help us determine where, when, and how a plugin should be used. For example, +There are a few different kinds of modules. Each kind of module allows us to extend the viewer in a different way, and provides a consistent API for us to do so. You can find a full list of the [different types of modules `in ohif-core`](https://github.com/OHIF/ohif-core/blob/43c08a29eff3fb646a0e83a03a236ddd84f4a6e8/src/plugins.js#L1-L6). Information on each type of module, it's API, and how we determine when/where it should be used is included below: #### Viewport @@ -58,14 +58,21 @@ Viewport components are managed by the `LayoutManager`. Which Viewport component - Registered SopClassHandlers - The SopClassUID for visible/selected datasets -![Lesion Tracker Screenshot](../assets/img/extensions-viewport.png) +![Cornerstone Viewport](../assets/img/extensions-viewport.png)
An example of three Viewports
For a complete example implementation, [check out the OHIFCornerstoneViewport](https://github.com/OHIF/Viewers/blob/react/extensions/ohif-cornerstone-extension/src/OHIFCornerstoneViewport.js). #### Toolbar -... +An extension can register a Toolbar Module by providing a `getToolbarModule()` method that returns a React Component. The component does not receive any props. If you want to modify or react to state, you will need to connect to the redux store. + +![Toolbar Extension](../assets/img/extensions-toolbar.gif) +
A toolbar extension example
+ +Toolbar components are rendered in the `ToolbarRow` component. + +For a complete example implementation, [check out the OHIFCornerstoneViewport's Toolbar Module](https://github.com/OHIF/Viewers/blob/react/extensions/ohif-cornerstone-extension/src/ToolbarModule.js). #### SopClassHandler @@ -73,11 +80,11 @@ For a complete example implementation, [check out the OHIFCornerstoneViewport](h #### Panel -... +> The panel module is not yet in use. ### Registering Extensions -Extensions are registered for the application at startup. The `ExtensionManager`, exposed by `ohif-core`, registers a list of extensions with our application's store. Each module provided by the extension becomes available via `state.plugins.availablePlugins`, and consists of three parts: id, type (PLUGIN_TYPE), and the return value of the module method. +Extensions are registered for the application at startup. The `ExtensionManager`, exposed by `ohif-core`, registers a list of extensions with our application's store. Each module provided by the extension becomes available via `state.plugins.availablePlugins`, and consists of three parts: id, type ([PLUGIN_TYPE](https://github.com/OHIF/ohif-core/blob/43c08a29eff3fb646a0e83a03a236ddd84f4a6e8/src/plugins.js#L1-L6)), and the return value of the module method. In a future version, we will likely expose a way to provide the extensions you would like included at startup. @@ -102,13 +109,3 @@ ExtensionManager.registerExtensions(store, extensions); A small number of powerful extensions for popular use cases are maintained by OHIF. They're co-located in the [`OHIF/Viewers`](https://github.com/OHIF/Viewers/tree/react/) repository, in the top level [`extensions/`](https://github.com/OHIF/Viewers/tree/react/extensions) directory. {% include "./_maintained-extensions-table.md" %} - - -https://github.com/OHIF/ohif-core/blob/43c08a29eff3fb646a0e83a03a236ddd84f4a6e8/src/redux/reducers/plugins.js#L7-L30 - -- Connected Layout Manager - - AvailablePlugins that match Viewport type - -ToolbarRow - - AvailablePlugins that match Toolbar type - diff --git a/docs/latest/assets/img/extensions-toolbar.gif b/docs/latest/assets/img/extensions-toolbar.gif new file mode 100644 index 0000000000000000000000000000000000000000..88c313f3d936ed0216ac43e531f9c988af261a69 GIT binary patch literal 37690 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%0A(uKk z{G6+D>Z>(ZWk4(BB0v`%1vx`cVhr%GN60LKI9pluYrSDBhUgpUc;vkIAF_Mu1(jHp z@yhZ}V`Grmrm|p63ZiP7#JvzTjxr`n)M!Mfqn0^wB$uN2IBE>_(>7$qgKjBUWmN2= zD9%Jp@Vvzj`uRHYwmWngt)BL#$9(+a$1&D2&*cjB`^%)6JHrA0W)@=~KHS`Z z(AnTYs3i9AU<{V>0$-%0RytWPcA`!RT=BCcFM{i0i*OQt50fxL$2N;doDqwnXpCyQ zl^D*XawrOKpO*$Y5^54mLh#F$r8KRj{dgGCZkt9T8k#pW31fPTE}Bd5V;2@w6e^jD zE_I-uCU5Ex604ST083O8KR^oSw*Ck~Wl3|eNY$W0g=Nx6ny-VQJ&I)!7k=X_Ib7z^ z<1s*T0m!FLC3WZG#!fbt-KzR4GI>| zDl+6~#1V61Z^reW+mZgevP^^|1z6wxM*;M&egJ3|go7dCK!b##CyIdEals28XtvPZ zA0<~zu^vbzCNDRBLr|(5gKsvdlci}s94sUha8@VH68n-11DRMvXB7+M#_KKWMXJ4a zu*yp{!NcX3x~25Rj$bL#S2Qcl=~2->HdpDzD8NE~B~4e&$Iu|7N@7Xzgr%B*Ny2kZ zEwF=i=Q^x+re05l%cG%OKYtDf*IS?N`}2C!PX{7lFz8;>00P0Y1b@Aw|Q-qVZGoyMZAdDi^B1EN}DqcVT8x(U-i6;;b($RXAf zpu}(UcD9=?F!9xDHTZ^U8=^~zjZ*+QGXF$8Bth@R$nJA0aGb0E^21Fi>yzx$VB;5t zg86|c*{sIC7^6)e39o{t7lU#0b@Ih4(&a3|=}a(!F$3L&wY?|v{ywt&0Hwll+lRV^ zs}#m%V@YmJL6YcWL&1c4PG{x}4>43BT?|rzZ*(B99%0Ds9G$0;?Br&_4z6~{QKC3aPhi*P} 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 literal 0 HcmV?d00001 From 37368ca30e46e34f1cf98076c175f9b7e79a8276 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Fri, 19 Apr 2019 12:42:26 -0400 Subject: [PATCH 11/39] Formatting --- .../ConnectedLayoutManager.js | 45 ++++++++++--------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/src/connectedComponents/ConnectedLayoutManager.js b/src/connectedComponents/ConnectedLayoutManager.js index 3a682c94b..4a0b5dd2b 100644 --- a/src/connectedComponents/ConnectedLayoutManager.js +++ b/src/connectedComponents/ConnectedLayoutManager.js @@ -3,32 +3,37 @@ import { LayoutManager } from 'react-viewerbase'; import OHIF from 'ohif-core'; const mapStateToProps = state => { - const viewportPluginIds = state.plugins.availablePlugins.filter(plugin => plugin.type === OHIF.plugins.PLUGIN_TYPES.VIEWPORT).map(plugin => plugin.id); - const availablePlugins = {} - viewportPluginIds.forEach(id => { - const plugin = OHIF.plugins.availablePlugins.find(plugin => plugin.id === id); - if (plugin) { - availablePlugins[id] = plugin.component; - } - }); + const viewportPluginIds = state.plugins.availablePlugins + .filter(plugin => plugin.type === OHIF.plugins.PLUGIN_TYPES.VIEWPORT) + .map(plugin => plugin.id); - // TODO Use something like state.plugins.defaultPlugin[OHIF.plugins.PLUGIN_TYPES.VIEWPORT] - let defaultPlugin; - if (viewportPluginIds && viewportPluginIds.length) { - defaultPlugin = viewportPluginIds[0]; + const availablePlugins = {}; + viewportPluginIds.forEach(id => { + const plugin = OHIF.plugins.availablePlugins.find( + plugin => plugin.id === id + ); + if (plugin) { + availablePlugins[id] = plugin.component; } + }); - return { - layout: state.viewports.layout, - activeViewportIndex: state.viewports.activeViewportIndex, - availablePlugins, - defaultPlugin - }; + // TODO Use something like state.plugins.defaultPlugin[OHIF.plugins.PLUGIN_TYPES.VIEWPORT] + let defaultPlugin; + if (viewportPluginIds && viewportPluginIds.length) { + defaultPlugin = viewportPluginIds[0]; + } + + return { + layout: state.viewports.layout, + activeViewportIndex: state.viewports.activeViewportIndex, + availablePlugins, + defaultPlugin + }; }; const ConnectedLayoutManager = connect( - mapStateToProps, - null + mapStateToProps, + null )(LayoutManager); export default ConnectedLayoutManager; From c1b7e5a7fc53c776b27cfe4b4367333f0ddc01f5 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Fri, 19 Apr 2019 12:42:38 -0400 Subject: [PATCH 12/39] Remove unused proptypes --- extensions/ohif-cornerstone-extension/src/ToolbarModule.js | 1 - 1 file changed, 1 deletion(-) diff --git a/extensions/ohif-cornerstone-extension/src/ToolbarModule.js b/extensions/ohif-cornerstone-extension/src/ToolbarModule.js index 8ee1ff5e2..657441b60 100644 --- a/extensions/ohif-cornerstone-extension/src/ToolbarModule.js +++ b/extensions/ohif-cornerstone-extension/src/ToolbarModule.js @@ -1,5 +1,4 @@ import React, { Component } from 'react'; -import PropTypes from 'prop-types'; import ConnectedToolbarSection from './ConnectedToolbarSection'; import { ToolbarButton } from 'react-viewerbase'; import ConnectedCineDialog from './ConnectedCineDialog'; From 0705565c02e1e452298858c5a3f13c1c8be99545 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Fri, 19 Apr 2019 12:46:05 -0400 Subject: [PATCH 13/39] Update high level summary of extensions --- docs/latest/advanced/extensions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/latest/advanced/extensions.md b/docs/latest/advanced/extensions.md index ee65d9152..5303dac87 100644 --- a/docs/latest/advanced/extensions.md +++ b/docs/latest/advanced/extensions.md @@ -1,6 +1,6 @@ # Extensions -Extensions add new functionality to the viewer by extending existing functionality. This can be something as simple as adding a new button to the toolbar, or as complex as a new viewport capable of rendering volumes in 3D. +Extensions add new functionality to the viewer by registering one or more modules. They go one step further than configuration in that they allow us to inject custom React components, so long as they adhere to the module's interface. This can be something as simple as adding a new button to the toolbar, or as complex as a new viewport capable of rendering volumes in 3D. ## Overview From 46b737fcbb62ea25ca75308849e944fd2ad92e05 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Fri, 19 Apr 2019 14:05:31 -0400 Subject: [PATCH 14/39] Skinny advanced description --- docs/latest/advanced/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/latest/advanced/index.md b/docs/latest/advanced/index.md index 14ba220d6..c882d000e 100644 --- a/docs/latest/advanced/index.md +++ b/docs/latest/advanced/index.md @@ -1,3 +1,3 @@ # Advanced -Advanced topics are geared toward individuals that want a deeper understanding of the viewer's architecture. \ No newline at end of file +Advanced topics go beyond basic configuration and deployment. Their goal is to provide insight into this project's architecture and guidance on leveraging extensions. \ No newline at end of file From 17af9be266d44d78b5bf93843a8d1effe8184613 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Fri, 19 Apr 2019 14:43:25 -0400 Subject: [PATCH 15/39] Don't build example for this PR --- generateStaticSite.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/generateStaticSite.sh b/generateStaticSite.sh index c29fb5d74..3036f8c8b 100755 --- a/generateStaticSite.sh +++ b/generateStaticSite.sh @@ -45,14 +45,14 @@ echo $DEPLOY_PRIME_URL export ROOT_URL=$DEPLOY_PRIME_URL/demo # cat package.json -yarn install -yarn build +# yarn install +# yarn build -cd example -yarn install -yarn run prepare -sed -i "s,http://localhost:5000,${ROOT_URL},g" index.html -sed -i 's,"routerBasename": "/","routerBasename": "/demo",g' index.html -rm -rf node_modules -mkdir docs/latest/_book/demo/ -cp -R * docs/latest/_book/demo/ +# cd example +# yarn install +# yarn run prepare +# sed -i "s,http://localhost:5000,${ROOT_URL},g" index.html +# sed -i 's,"routerBasename": "/","routerBasename": "/demo",g' index.html +# rm -rf node_modules +# mkdir docs/latest/_book/demo/ +# cp -R * docs/latest/_book/demo/ From 7865d39fbbdb50f310ddd5f9ff3fdf5266583dc7 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Wed, 24 Apr 2019 15:27:57 -0400 Subject: [PATCH 16/39] Add diagram to source --- img/architecture-diagram.png | Bin 0 -> 38068 bytes img/designs/architecture-diagram | Bin 0 -> 27048 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 img/architecture-diagram.png create mode 100644 img/designs/architecture-diagram diff --git a/img/architecture-diagram.png b/img/architecture-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..1c43d010826825b8293ffe49587b7d9a68bdd699 GIT binary patch literal 38068 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
^@;w%=~e}?WV=L ztBzBA`PvP+ZXWe)wl0}1Y%pD(Q*O3BrMnN|wZEp?HoX3#)*?5sA}~jGWGRBSw>^@# zeQN-LrK^lp>7Hg?Goa1Y)7RcFwa7qs>(lTm8+IqVr47-PXk4iC#2>Z1n*Q%q0Z-*GF^;+7=|1?P zu%Wt6*OvF^b(bO^Zy(K<+t3m6U=%QaNM~S^oiL5N04^{Usyb@IX?^= zJgi>8RkC7v3NwgoC50nGx)ZX3jD4q9=w!$<`Sr;x0}x>l4qyi>hHSm=*t0tZ-koCL znCqsn(PpvyLyT>ni5EUz2Syl$8`xKk>m|59gLKog;3qzfVvTR#!kZGFSXe9rkshX< z)1<=gBl;?nCiODt?juv?^mu27nk>J`J^$j~DLRwgNb>Jw?WSvNiu}}(N2#~B?4m9i zNP}i+rMqRbLknbecj1u%%i+xu+vKv5WH4`K=;EHXqGgt@>lvG6m;{%hpHHb?ZfAGYjWrBC1Ag8ToH-v_uf$X zu*b)-VXWWnNyN5XixeI_=zyLP#(WHJyQhjZkVcr);PV2_8#povQT3a1zsM>%ToLmL zJbRmi#dqj0CXfebpU>XC6CH~j-n+}{NcY8}fLmbxSA(|M%@KR`=jC*n*d^eTSGoxZ zKksW>S|&TtU5O0}!Mju*{GoVG$#eRT_T_>N=U8?Urm)gKYR4Y#zlL#EG!D@KvQDIG zd3>?SH*2%K=71abFU}34ZHMF2>B_9q*?7zDHZPKURP*=*n8_CY7#ItFmXBSws%Ztw z2>TgKVaWK&0D|Y8mHm}x5juG1`o5*gQZR{59NhN!$|0R81Bd=*syS2w3(6T$2#_Nx zF@J%J_hyaBpWJS!CU1+(0X1H9*5A$E9s5$FGq|50>XO{2*0xk#xQ-?9RbhULhkQNh z#u~jkHNIPbp)WU(w{bvF|4faye$&a_Q@^vQhn;7_KJZ^JeWzXD=`;Rvx|Vk){0_E` zq)K#fA!0YDYQ4!-q$PgrE@zZom3B=51xC`L@NPUWp`;CDWWCt;cFx;yeLL`QUE{sL ztSRUnqkIlm$p!C&8;N)j{S6z9Oq9LOa{z$n&utxf7EmyptGppgVV~MHl`p)OmWE+zV|*-X+@Z_Am&CJ{@|(G}X#@S5zswTb7d?XjVI!c6%A^G zQ9mDq$V$NGB-;lUje2sMO`wx$JORxL2Nrz76OJZaCc{ho6j$K!pgO<(BD>sFPdAzA z5-H7^6A=qZ#kFKw$}ji7$i{6Fs)MykzbTTjfL-d~*RA%jc}E4=%g7ht@`Q;qsuP78 z>CE&^V8)?M9xG;HYxJYRuiyLi^G82~B9r~vhw4LsJo@(1^Rh7O1ahOwlJ!1K7(*QE zQW%|CW{(#Y8-eg2&>Ft+7?>TJf4F{L$5VPm9jdf(0vRP~-6`mVRbM?&5#6+<`Rp!3 zXQ07*$4+x*NJ5uN37_0fOT)EVpPrRnz{xRW7RTBF{wy%v>$VW^?TVVH#k01n?Lj1( zxr6M4xmeb!tzD8MEeN&qhBFEh+0E!4Dl4I`bkMY?lO*AG_|RG%H*rD$k_O+Cle`_d z$3r8R!fdhh(`k5lo>1#QpTB+t&)pDXg!_LCxZy-U`m@$zwU*h+k)@(ur^NO5w8){z z@z3ltWJ>h*e%b+~KJcvi`)=t!-!FI!hel<4S&}FjHzqhOi7m+sBxBFY#fAMEPfZoe z(FRVo2=_v>S!3dF#~WHQ;@9UI1~6n;?VlOQjo;|mpZn&S!JsLz#7Qdh

>hT6;7h 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 E0QJOQxc~qF literal 0 HcmV?d00001 diff --git a/img/designs/architecture-diagram b/img/designs/architecture-diagram new file mode 100644 index 0000000000000000000000000000000000000000..bbf6cf58b7ab7ac3dbb30c42e0287eab4e35c244 GIT binary patch literal 27048 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 m7*P2Cz%ctScx?Thh{PBcI1QK}^H+) Date: Wed, 24 Apr 2019 15:41:23 -0400 Subject: [PATCH 17/39] Add starting architecture docs --- docs/latest/SUMMARY.md | 2 ++ docs/latest/advanced/architecture.md | 5 +++++ docs/latest/architecture/index.md | 1 - docs/latest/assets/img/architecture-diagram.png | Bin 0 -> 38068 bytes 4 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 docs/latest/advanced/architecture.md delete mode 100644 docs/latest/architecture/index.md create mode 100644 docs/latest/assets/img/architecture-diagram.png diff --git a/docs/latest/SUMMARY.md b/docs/latest/SUMMARY.md index 7e7cf08d0..ec4e63624 100644 --- a/docs/latest/SUMMARY.md +++ b/docs/latest/SUMMARY.md @@ -14,6 +14,8 @@ - [Modules](advanced/extensions.md#modules) - [Registering](advanced/extensions.md#registering-extensions) - [OHIF Maintained](advanced/extensions.md#ohif-maintained-extensions) +- [Architecture](advanced/architecture.md) + - Overview - Connecting to Image Archives - [DICOM Web](connecting-to-image-archives/dicomweb.md) diff --git a/docs/latest/advanced/architecture.md b/docs/latest/advanced/architecture.md new file mode 100644 index 000000000..16ed82886 --- /dev/null +++ b/docs/latest/advanced/architecture.md @@ -0,0 +1,5 @@ +# Architecture + +![Architecture Diagram](../assets/img/architecture-diagram.png) + +

architecture diagram
\ No newline at end of file diff --git a/docs/latest/architecture/index.md b/docs/latest/architecture/index.md deleted file mode 100644 index f2569bf9f..000000000 --- a/docs/latest/architecture/index.md +++ /dev/null @@ -1 +0,0 @@ -# Architecture \ No newline at end of file diff --git a/docs/latest/assets/img/architecture-diagram.png b/docs/latest/assets/img/architecture-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..1c43d010826825b8293ffe49587b7d9a68bdd699 GIT binary patch literal 38068 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
^@;w%=~e}?WV=L ztBzBA`PvP+ZXWe)wl0}1Y%pD(Q*O3BrMnN|wZEp?HoX3#)*?5sA}~jGWGRBSw>^@# zeQN-LrK^lp>7Hg?Goa1Y)7RcFwa7qs>(lTm8+IqVr47-PXk4iC#2>Z1n*Q%q0Z-*GF^;+7=|1?P zu%Wt6*OvF^b(bO^Zy(K<+t3m6U=%QaNM~S^oiL5N04^{Usyb@IX?^= zJgi>8RkC7v3NwgoC50nGx)ZX3jD4q9=w!$<`Sr;x0}x>l4qyi>hHSm=*t0tZ-koCL znCqsn(PpvyLyT>ni5EUz2Syl$8`xKk>m|59gLKog;3qzfVvTR#!kZGFSXe9rkshX< z)1<=gBl;?nCiODt?juv?^mu27nk>J`J^$j~DLRwgNb>Jw?WSvNiu}}(N2#~B?4m9i zNP}i+rMqRbLknbecj1u%%i+xu+vKv5WH4`K=;EHXqGgt@>lvG6m;{%hpHHb?ZfAGYjWrBC1Ag8ToH-v_uf$X zu*b)-VXWWnNyN5XixeI_=zyLP#(WHJyQhjZkVcr);PV2_8#povQT3a1zsM>%ToLmL zJbRmi#dqj0CXfebpU>XC6CH~j-n+}{NcY8}fLmbxSA(|M%@KR`=jC*n*d^eTSGoxZ zKksW>S|&TtU5O0}!Mju*{GoVG$#eRT_T_>N=U8?Urm)gKYR4Y#zlL#EG!D@KvQDIG zd3>?SH*2%K=71abFU}34ZHMF2>B_9q*?7zDHZPKURP*=*n8_CY7#ItFmXBSws%Ztw z2>TgKVaWK&0D|Y8mHm}x5juG1`o5*gQZR{59NhN!$|0R81Bd=*syS2w3(6T$2#_Nx zF@J%J_hyaBpWJS!CU1+(0X1H9*5A$E9s5$FGq|50>XO{2*0xk#xQ-?9RbhULhkQNh z#u~jkHNIPbp)WU(w{bvF|4faye$&a_Q@^vQhn;7_KJZ^JeWzXD=`;Rvx|Vk){0_E` zq)K#fA!0YDYQ4!-q$PgrE@zZom3B=51xC`L@NPUWp`;CDWWCt;cFx;yeLL`QUE{sL ztSRUnqkIlm$p!C&8;N)j{S6z9Oq9LOa{z$n&utxf7EmyptGppgVV~MHl`p)OmWE+zV|*-X+@Z_Am&CJ{@|(G}X#@S5zswTb7d?XjVI!c6%A^G zQ9mDq$V$NGB-;lUje2sMO`wx$JORxL2Nrz76OJZaCc{ho6j$K!pgO<(BD>sFPdAzA z5-H7^6A=qZ#kFKw$}ji7$i{6Fs)MykzbTTjfL-d~*RA%jc}E4=%g7ht@`Q;qsuP78 z>CE&^V8)?M9xG;HYxJYRuiyLi^G82~B9r~vhw4LsJo@(1^Rh7O1ahOwlJ!1K7(*QE zQW%|CW{(#Y8-eg2&>Ft+7?>TJf4F{L$5VPm9jdf(0vRP~-6`mVRbM?&5#6+<`Rp!3 zXQ07*$4+x*NJ5uN37_0fOT)EVpPrRnz{xRW7RTBF{wy%v>$VW^?TVVH#k01n?Lj1( zxr6M4xmeb!tzD8MEeN&qhBFEh+0E!4Dl4I`bkMY?lO*AG_|RG%H*rD$k_O+Cle`_d z$3r8R!fdhh(`k5lo>1#QpTB+t&)pDXg!_LCxZy-U`m@$zwU*h+k)@(ur^NO5w8){z z@z3ltWJ>h*e%b+~KJcvi`)=t!-!FI!hel<4S&}FjHzqhOi7m+sBxBFY#fAMEPfZoe z(FRVo2=_v>S!3dF#~WHQ;@9UI1~6n;?VlOQjo;|mpZn&S!JsLz#7Qdh

>hT6;7h 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 E0QJOQxc~qF literal 0 HcmV?d00001 From cf93a1eb06df1e3fa34eb4475d08c7fa3c14f1a1 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Wed, 24 Apr 2019 22:30:18 -0400 Subject: [PATCH 18/39] Overview --- docs/latest/advanced/architecture.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/latest/advanced/architecture.md b/docs/latest/advanced/architecture.md index 16ed82886..022ceb5bd 100644 --- a/docs/latest/advanced/architecture.md +++ b/docs/latest/advanced/architecture.md @@ -1,5 +1,10 @@ # Architecture +## Overview + +The [`OHIF/Viewers`](https://github.com/OHIF/Viewers/tree/react) repository contains the source code for the OHIF Medical Imaging Viewer. It is effectively a React [progressive web app](https://developers.google.com/web/progressive-web-apps/) (PWA) that combines the business logic housed in [`OHIF/ohif-core`](https://github.com/OHIF/ohif-core) and the components in our React Component library [`OHIF/react-viewerbase`](https://github.com/OHIF/react-viewerbase). It provides customization for common use cases through [configuration](../essentials/configuration.md) and for adding functionality via [extensions](./extensions.md). + +The purpose of this documentation is to better illustrate how these pieces work together to create a Viewer and where you should direct your attention for contributions. ![Architecture Diagram](../assets/img/architecture-diagram.png)

architecture diagram
\ No newline at end of file From 8ce7c04fa30f2224483c19dc4ad89a4ec79cc90d Mon Sep 17 00:00:00 2001 From: dannyrb Date: Wed, 24 Apr 2019 22:30:35 -0400 Subject: [PATCH 19/39] Business logic --- docs/latest/advanced/architecture.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/latest/advanced/architecture.md b/docs/latest/advanced/architecture.md index 022ceb5bd..2553dbde8 100644 --- a/docs/latest/advanced/architecture.md +++ b/docs/latest/advanced/architecture.md @@ -5,6 +5,22 @@ The [`OHIF/Viewers`](https://github.com/OHIF/Viewers/tree/react) repository contains the source code for the OHIF Medical Imaging Viewer. It is effectively a React [progressive web app](https://developers.google.com/web/progressive-web-apps/) (PWA) that combines the business logic housed in [`OHIF/ohif-core`](https://github.com/OHIF/ohif-core) and the components in our React Component library [`OHIF/react-viewerbase`](https://github.com/OHIF/react-viewerbase). It provides customization for common use cases through [configuration](../essentials/configuration.md) and for adding functionality via [extensions](./extensions.md). The purpose of this documentation is to better illustrate how these pieces work together to create a Viewer and where you should direct your attention for contributions. + +### Business Logic + +Our goal is to maintain the majority of our business logic in [`OHIF/ohif-core`](https://github.com/OHIF/ohif-core). `ohif-core` offers pre-packaged solutions for features common to Web-based medical imaging viewers. For example: + +- Hotkeys +- DICOM Web +- Hanging Protocols +- Managing a study's measurements +- Managing a study's DICOM metadata +- A flexible pattern for extensions +- [And many others](https://github.com/OHIF/ohif-core/blob/master/src/index.js#L49-L69) + +It does this while remaining decoupled from any particular view library or +rendering logic. While we use it to power our React Viewer, it can be used with Vue, React, Vanilla JS, or any number of other frameworks. + ![Architecture Diagram](../assets/img/architecture-diagram.png)
architecture diagram
\ No newline at end of file From e533f6f0e81793da0db3118c992215d413ebe141 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Wed, 24 Apr 2019 22:30:51 -0400 Subject: [PATCH 20/39] Configuration placeholder --- docs/latest/essentials/configuration.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/latest/essentials/configuration.md diff --git a/docs/latest/essentials/configuration.md b/docs/latest/essentials/configuration.md new file mode 100644 index 000000000..af4abbfe2 --- /dev/null +++ b/docs/latest/essentials/configuration.md @@ -0,0 +1 @@ +# Configuration \ No newline at end of file From 320c3b0d67fa3ca2504e789d4738867d4bac75eb Mon Sep 17 00:00:00 2001 From: dannyrb Date: Wed, 24 Apr 2019 22:31:05 -0400 Subject: [PATCH 21/39] Updated primary nav --- docs/latest/SUMMARY.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/latest/SUMMARY.md b/docs/latest/SUMMARY.md index ec4e63624..9e48837b9 100644 --- a/docs/latest/SUMMARY.md +++ b/docs/latest/SUMMARY.md @@ -2,6 +2,7 @@ - Essentials - [Getting Started](essentials/getting-started.md) + - [Configuration](essentials/configuration.md) - [Troubleshooting](essentials/troubleshooting.md) - [Architecture](architecture/index.md) - Overview @@ -9,13 +10,13 @@ --- - [Advanced](advanced/index.md) +- [Architecture](advanced/architecture.md) + - [Overview](advanced/architecture.md#overview) - [Extensions](advanced/extensions.md) - [Overview](advanced/extensions.md#overview) - [Modules](advanced/extensions.md#modules) - [Registering](advanced/extensions.md#registering-extensions) - [OHIF Maintained](advanced/extensions.md#ohif-maintained-extensions) -- [Architecture](advanced/architecture.md) - - Overview - Connecting to Image Archives - [DICOM Web](connecting-to-image-archives/dicomweb.md) From 98df7d5989c0cb1368320a7340eb0448a01432e9 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Wed, 24 Apr 2019 23:16:14 -0400 Subject: [PATCH 22/39] Common questions --- docs/latest/advanced/architecture.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/latest/advanced/architecture.md b/docs/latest/advanced/architecture.md index 2553dbde8..54facab24 100644 --- a/docs/latest/advanced/architecture.md +++ b/docs/latest/advanced/architecture.md @@ -23,4 +23,10 @@ rendering logic. While we use it to power our React Viewer, it can be used with ![Architecture Diagram](../assets/img/architecture-diagram.png) -
architecture diagram
\ No newline at end of file +
architecture diagram
+ +## Common Questions + +> Can I create my own Viewer using Vue.js or Angular.js? + +You can, but you will not be able to leverage as much of the existing code and components. `ohif-core` could still be used for business logic, and to provide a model for extensions. `react-viewerbase` would then become a guide for the components you would need to recreate. \ No newline at end of file From 2b67f906eae4f3e0eccc5cf48d82344681392e7c Mon Sep 17 00:00:00 2001 From: dannyrb Date: Wed, 24 Apr 2019 23:16:24 -0400 Subject: [PATCH 23/39] Extensions --- docs/latest/advanced/architecture.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/latest/advanced/architecture.md b/docs/latest/advanced/architecture.md index 54facab24..d87dab757 100644 --- a/docs/latest/advanced/architecture.md +++ b/docs/latest/advanced/architecture.md @@ -21,6 +21,14 @@ Our goal is to maintain the majority of our business logic in [`OHIF/ohif-core`] It does this while remaining decoupled from any particular view library or rendering logic. While we use it to power our React Viewer, it can be used with Vue, React, Vanilla JS, or any number of other frameworks. +### Misc. Extensions + +Want to add custom logic or UI Components to the OHIF Viewer, but don't want to maintain a fork? We expose common integration points via [extensions](./extensions.md) to make that possible. For a list of extensions maintained by OHIF, [check out this helpful table](./extensions.html#ohif-maintained-extensions). + + +If you find yourself thinking "I wish the Viewer could do X", and you can't accomplish it with an extension today, create a GitHub issue! We're actively looking for ways to improve our extensibility ^_^ + +[Click here to read more about extensions!](./extensions.md) ![Architecture Diagram](../assets/img/architecture-diagram.png)
architecture diagram
From e188180a4abb556b12744cca91ba2d0f0062a0a0 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Wed, 24 Apr 2019 23:16:36 -0400 Subject: [PATCH 24/39] Remaining architecture menu items --- docs/latest/SUMMARY.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/latest/SUMMARY.md b/docs/latest/SUMMARY.md index 9e48837b9..9dc674294 100644 --- a/docs/latest/SUMMARY.md +++ b/docs/latest/SUMMARY.md @@ -12,6 +12,11 @@ - [Advanced](advanced/index.md) - [Architecture](advanced/architecture.md) - [Overview](advanced/architecture.md#overview) + - [Business Logic](advanced/architecture.md#business-logic) + - [Component Library](advanced/architecture.md#react-component-library) + - [Extensions](advanced/architecture.md#misc-extensions) + - [Diagram](advanced/architecture.md#diagram) + - [Common Questions](advanced/architecture.md#common-questions) - [Extensions](advanced/extensions.md) - [Overview](advanced/extensions.md#overview) - [Modules](advanced/extensions.md#modules) From e96a331d9102b7bfd0760f661a6f19ab8ef66de7 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Wed, 24 Apr 2019 23:25:43 -0400 Subject: [PATCH 25/39] Diagram explanation --- docs/latest/advanced/architecture.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/latest/advanced/architecture.md b/docs/latest/advanced/architecture.md index d87dab757..d1fefde2d 100644 --- a/docs/latest/advanced/architecture.md +++ b/docs/latest/advanced/architecture.md @@ -29,6 +29,16 @@ Want to add custom logic or UI Components to the OHIF Viewer, but don't want to If you find yourself thinking "I wish the Viewer could do X", and you can't accomplish it with an extension today, create a GitHub issue! We're actively looking for ways to improve our extensibility ^_^ [Click here to read more about extensions!](./extensions.md) + +### Diagram + +This diagram is a conceptual illustration of how the Viewer is architected. + +0. (optional) `extensions` can be registered with `ohif-core`'s extension manager +1. `ohif-core` provides bussiness logic and a way for `viewer` to access registered extensions +2. The `viewer` composes and provides data to components from our component library (`react-viewerbase`) +3. The `viewer` can be built and served as a stand-alone PWA, or as an embeddable package ([`ohif-viewer`](https://www.npmjs.com/package/ohif-viewer)) + ![Architecture Diagram](../assets/img/architecture-diagram.png)
architecture diagram
From a78fa6e3b3276eeee78659bd0b833d1d32ff2d3b Mon Sep 17 00:00:00 2001 From: dannyrb Date: Wed, 24 Apr 2019 23:39:45 -0400 Subject: [PATCH 26/39] Component library --- docs/latest/advanced/architecture.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/latest/advanced/architecture.md b/docs/latest/advanced/architecture.md index d1fefde2d..fd4391bad 100644 --- a/docs/latest/advanced/architecture.md +++ b/docs/latest/advanced/architecture.md @@ -21,6 +21,14 @@ Our goal is to maintain the majority of our business logic in [`OHIF/ohif-core`] It does this while remaining decoupled from any particular view library or rendering logic. While we use it to power our React Viewer, it can be used with Vue, React, Vanilla JS, or any number of other frameworks. + +### React Component Library + +[`OHIF/react-viewerbase`](https://github.com/OHIF/react-viewerbase) is a React Component library that contains the reusable components that power the OHIF Viewer. It allows us to build, compose, and test components in isolation; easing the development process by reducing the need to stand-up a local PACS with test case data. + +[Check out our component library!](https://react.ohif.org/) + + ### Misc. Extensions Want to add custom logic or UI Components to the OHIF Viewer, but don't want to maintain a fork? We expose common integration points via [extensions](./extensions.md) to make that possible. For a list of extensions maintained by OHIF, [check out this helpful table](./extensions.html#ohif-maintained-extensions). From d062efdc820782dd91e987f144915eb81e8a5e78 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Wed, 24 Apr 2019 23:39:56 -0400 Subject: [PATCH 27/39] Stubbed common question --- docs/latest/advanced/architecture.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/latest/advanced/architecture.md b/docs/latest/advanced/architecture.md index fd4391bad..9cfeca5b7 100644 --- a/docs/latest/advanced/architecture.md +++ b/docs/latest/advanced/architecture.md @@ -53,6 +53,10 @@ This diagram is a conceptual illustration of how the Viewer is architected. ## Common Questions +> When should I use the packaged source `ohif-viewer` versus building a PWA from the source? + +... + > Can I create my own Viewer using Vue.js or Angular.js? You can, but you will not be able to leverage as much of the existing code and components. `ohif-core` could still be used for business logic, and to provide a model for extensions. `react-viewerbase` would then become a guide for the components you would need to recreate. \ No newline at end of file From d45ac5db0a3c4842c3146b7da8727211eb99ecdb Mon Sep 17 00:00:00 2001 From: dannyrb Date: Wed, 24 Apr 2019 23:54:26 -0400 Subject: [PATCH 28/39] "Goal" of architecture page --- docs/latest/advanced/architecture.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/latest/advanced/architecture.md b/docs/latest/advanced/architecture.md index 9cfeca5b7..e91372c4b 100644 --- a/docs/latest/advanced/architecture.md +++ b/docs/latest/advanced/architecture.md @@ -1,10 +1,13 @@ # Architecture +Looking to extend your instance of the OHIF Viewer? Want learn how to reuse _a portion_ of the Viewer in your own application? Or maybe you want to get involved and draft or suggest a new feature? Regardless, you're in the right place! + +The OHIF Viewer aims to be decoupled, configurable, and extensible; while this allows our code to be used in more ways, it also increases complexity. Below, we aim to demistify that complexity by providing insight into how our Viewer is architected, and the role each of it's dependent libraries plays. + ## Overview The [`OHIF/Viewers`](https://github.com/OHIF/Viewers/tree/react) repository contains the source code for the OHIF Medical Imaging Viewer. It is effectively a React [progressive web app](https://developers.google.com/web/progressive-web-apps/) (PWA) that combines the business logic housed in [`OHIF/ohif-core`](https://github.com/OHIF/ohif-core) and the components in our React Component library [`OHIF/react-viewerbase`](https://github.com/OHIF/react-viewerbase). It provides customization for common use cases through [configuration](../essentials/configuration.md) and for adding functionality via [extensions](./extensions.md). -The purpose of this documentation is to better illustrate how these pieces work together to create a Viewer and where you should direct your attention for contributions. ### Business Logic From 300886f315cb81698cc85160cc6120151c7467d0 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Thu, 25 Apr 2019 14:01:19 -0400 Subject: [PATCH 29/39] The why --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index c8b295b95..9dc686a64 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,10 @@ # Viewers This repo contains the OHIF DICOM Viewer and Lesion Tracker, and various shared meteor packages. +## Why? + +Building a web based medical imaging viewer from scratch is time intensive, hard to get right, and expensive. Instead of re-inventing the wheel, you can use the OHIF Viewer as a rock solid platform to build on top of. The Viewer is a [React](https://reactjs.org/) [Progressive Web Application](https://developers.google.com/web/progressive-web-apps/) that can be embedded in existing applications via it's [packaged source (ohif-viewer)](https://www.npmjs.com/package/ohif-viewer) or hosted stand-alone. The Viewer exposes [configuration](https://deploy-preview-398--ohif.netlify.com/essentials/configuration.html) and [extensions](https://deploy-preview-398--ohif.netlify.com/advanced/extensions.html) to support workflow customization and advanced functionality at common integration points. + +If you're interested in using the OHIF Viewer, but you're not sure it supports your use case [check out our docs](https://deploy-preview-398--ohif.netlify.com/). Still not sure, or you would like to propose new features? Don't hesitate to [create an issue](https://github.com/OHIF/Viewers/issues) or open a pull request ^_^ Documentation is available here: http://docs.ohif.org/ From 95dd18dc90d9b1d0fef61bd9ae42d870e13dded4 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Thu, 25 Apr 2019 14:01:35 -0400 Subject: [PATCH 30/39] Read the docs --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 9dc686a64..afde302fc 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,13 @@ # Viewers This repo contains the OHIF DICOM Viewer and Lesion Tracker, and various shared meteor packages. + +
+ + +
## Why? Building a web based medical imaging viewer from scratch is time intensive, hard to get right, and expensive. Instead of re-inventing the wheel, you can use the OHIF Viewer as a rock solid platform to build on top of. The Viewer is a [React](https://reactjs.org/) [Progressive Web Application](https://developers.google.com/web/progressive-web-apps/) that can be embedded in existing applications via it's [packaged source (ohif-viewer)](https://www.npmjs.com/package/ohif-viewer) or hosted stand-alone. The Viewer exposes [configuration](https://deploy-preview-398--ohif.netlify.com/essentials/configuration.html) and [extensions](https://deploy-preview-398--ohif.netlify.com/advanced/extensions.html) to support workflow customization and advanced functionality at common integration points. From cdf12511eaf224d9863cd75ac5b899a7db0b384e Mon Sep 17 00:00:00 2001 From: dannyrb Date: Thu, 25 Apr 2019 14:59:59 -0400 Subject: [PATCH 31/39] Badges --- README.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/README.md b/README.md index afde302fc..2cee0fdb8 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,19 @@ This repo contains the OHIF DICOM Viewer and Lesion Tracker, and various shared
+ +[![CircleCI][circleci-image]][circleci-url] +[![codecov][codecov-image]][codecov-url] +[![All Contributors][all-contributors-image]][contributing-url] +[![code style: prettier][prettier-image]][prettier-url] +[![semantic-release][semantic-image]][semantic-url] + +[![NPM version][npm-version-image]][npm-url] +[![NPM downloads][npm-downloads-image]][npm-url] +[![MIT License][license-image]][license-url] + + + ## Why? Building a web based medical imaging viewer from scratch is time intensive, hard to get right, and expensive. Instead of re-inventing the wheel, you can use the OHIF Viewer as a rock solid platform to build on top of. The Viewer is a [React](https://reactjs.org/) [Progressive Web Application](https://developers.google.com/web/progressive-web-apps/) that can be embedded in existing applications via it's [packaged source (ohif-viewer)](https://www.npmjs.com/package/ohif-viewer) or hosted stand-alone. The Viewer exposes [configuration](https://deploy-preview-398--ohif.netlify.com/essentials/configuration.html) and [extensions](https://deploy-preview-398--ohif.netlify.com/advanced/extensions.html) to support workflow customization and advanced functionality at common integration points. @@ -15,6 +28,25 @@ Building a web based medical imaging viewer from scratch is time intensive, hard If you're interested in using the OHIF Viewer, but you're not sure it supports your use case [check out our docs](https://deploy-preview-398--ohif.netlify.com/). Still not sure, or you would like to propose new features? Don't hesitate to [create an issue](https://github.com/OHIF/Viewers/issues) or open a pull request ^_^ Documentation is available here: http://docs.ohif.org/ + + +[all-contributors-image]: https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square +[contributing-url]: https://github.com/OHIF/Viewers/blob/react/CONTRIBUTING.md +[circleci-image]: https://circleci.com/gh/OHIF/Viewers.svg?style=svg +[circleci-url]: https://circleci.com/gh/OHIF/Viewers +[codecov-image]: https://codecov.io/gh/OHIF/Viewers/branch/react/graph/badge.svg +[codecov-url]: https://codecov.io/gh/OHIF/Viewers +[prettier-image]: https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square +[prettier-url]: https://github.com/prettier/prettier +[semantic-image]: https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg +[semantic-url]: https://github.com/semantic-release/semantic-release + +[npm-url]: https://npmjs.org/package/ohif-viewer +[npm-downloads-image]: https://img.shields.io/npm/dm/ohif-viewer.svg?style=flat-square +[npm-version-image]: https://img.shields.io/npm/v/ohif-viewer.svg?style=flat-square +[license-image]: https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square +[license-url]: LICENSE + ### Demos [OHIF Viewer](http://viewer.ohif.org/) - A general-purpose radiology viewer with a variety of tools exposed. From 8c0138d1830a741590336cc6ec2b9773e0d04c53 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Thu, 25 Apr 2019 15:00:17 -0400 Subject: [PATCH 32/39] Issues --- README.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/README.md b/README.md index 2cee0fdb8..d6938d7e0 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,39 @@ Building a web based medical imaging viewer from scratch is time intensive, hard If you're interested in using the OHIF Viewer, but you're not sure it supports your use case [check out our docs](https://deploy-preview-398--ohif.netlify.com/). Still not sure, or you would like to propose new features? Don't hesitate to [create an issue](https://github.com/OHIF/Viewers/issues) or open a pull request ^_^ Documentation is available here: http://docs.ohif.org/ +## Issues + +_Looking to contribute? Look for the [Good First Issue][good-first-issue] +label._ + +### 🐛 Bugs + +Please file an issue for bugs, missing documentation, or unexpected behavior. + +[**See Bugs**][bugs] + +### 💡 Feature Requests + +Please file an issue to suggest new features. Vote on feature requests by adding +a 👍. This helps maintainers prioritize what to work on. + +[**See Feature Requests**][requests-feature] + +### ❓ Questions + +For questions related to using the library, please visit our support community, +or file an issue on GitHub. + +[Google Group][google-group] + +## License + +MIT © [OHIF](https://github.com/OHIF) + + + [all-contributors-image]: https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square From 8c75599bd2bb7dc64632c7d1d0b5ed120af1479b Mon Sep 17 00:00:00 2001 From: dannyrb Date: Thu, 25 Apr 2019 15:00:29 -0400 Subject: [PATCH 33/39] Contributing --- README.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/README.md b/README.md index d6938d7e0..a873351ef 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,33 @@ Building a web based medical imaging viewer from scratch is time intensive, hard If you're interested in using the OHIF Viewer, but you're not sure it supports your use case [check out our docs](https://deploy-preview-398--ohif.netlify.com/). Still not sure, or you would like to propose new features? Don't hesitate to [create an issue](https://github.com/OHIF/Viewers/issues) or open a pull request ^_^ Documentation is available here: http://docs.ohif.org/ +### Contributing + +It is notoriously difficult to setup multiple dependent repositories for +end-to-end testing and development. That's why we recommend writing and running +unit tests when adding and modifying features. This allows us to program in isolation without a complex setup, and has the added benefit of producing well-tested business logic. + +1. Clone this repository +2. Navigate to the project directory, and `yarn install` +3. To begin making changes, `yarn run dev` +4. To commit changes, run `yarn run cm` + +When creating tests, place the test file "next to" the file you're testing. +[For example](https://github.com/OHIF/Viewers/blob/react/src/index.test.js): + +```js +// File +index.js + +// Test for file +index.test.js +``` + +As you add and modify code, `jest` will watch for uncommitted changes and run +your tests, reporting the results to your terminal. Make a pull request with +your changes to `master`, and a core team member will review your work. If you +have any questions, please don't hesitate to reach out via a GitHub issue. + ## Issues _Looking to contribute? Look for the [Good First Issue][good-first-issue] From daaa42456aabe13657585d6610f27b1e5198842e Mon Sep 17 00:00:00 2001 From: dannyrb Date: Thu, 25 Apr 2019 15:00:48 -0400 Subject: [PATCH 34/39] Getting Started --- README.md | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a873351ef..9b7c71e8f 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,43 @@ Building a web based medical imaging viewer from scratch is time intensive, hard If you're interested in using the OHIF Viewer, but you're not sure it supports your use case [check out our docs](https://deploy-preview-398--ohif.netlify.com/). Still not sure, or you would like to propose new features? Don't hesitate to [create an issue](https://github.com/OHIF/Viewers/issues) or open a pull request ^_^ -Documentation is available here: http://docs.ohif.org/ + +## Getting Started + +This readme is specific to testing and developing locally. If you're more interested in production deployment strategies, [you can check out our documentation on publishing](https://deploy-preview-398--ohif.netlify.com/). + +Want to play around before you dig in? [Check out our LIVE Demo](https://viewer.ohif.org/) + +### Setup + +_Requirements:_ + +- [NodeJS & NPM](https://nodejs.org/en/download/) +- [Yarn](https://yarnpkg.com/lang/en/docs/install/) + +_Steps:_ + +1. Fork this repository +2. Clone your forked repository (your `origin`) + - `git clone git@github.com:YOUR_GITHUB_USERNAME/Viewers.git` +3. Add `OHIF/Viewers` as a `remote` repository (the `upstream`) + - `git remote add upstream git@github.com:OHIF/Viewers.git` + + +### Developing Locally + +In your cloned repository's root folder, run: + +```js +// Restore dependencies +yarn install + +// Stands up local server to host Viewer. +// Viewer connects to our public cloud PACS by default +yarn start +``` + + ### Contributing It is notoriously difficult to setup multiple dependent repositories for From 8ee610565abb430fef67612e9a2bd818bdbceb61 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Thu, 25 Apr 2019 15:01:01 -0400 Subject: [PATCH 35/39] Why updates --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9b7c71e8f..d1e57e296 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ This repo contains the OHIF DICOM Viewer and Lesion Tracker, and various shared ## Why? -Building a web based medical imaging viewer from scratch is time intensive, hard to get right, and expensive. Instead of re-inventing the wheel, you can use the OHIF Viewer as a rock solid platform to build on top of. The Viewer is a [React](https://reactjs.org/) [Progressive Web Application](https://developers.google.com/web/progressive-web-apps/) that can be embedded in existing applications via it's [packaged source (ohif-viewer)](https://www.npmjs.com/package/ohif-viewer) or hosted stand-alone. The Viewer exposes [configuration](https://deploy-preview-398--ohif.netlify.com/essentials/configuration.html) and [extensions](https://deploy-preview-398--ohif.netlify.com/advanced/extensions.html) to support workflow customization and advanced functionality at common integration points. +Building a web based medical imaging viewer from scratch is time intensive, hard to get right, and expensive. Instead of re-inventing the wheel, you can use the OHIF Viewer as a rock solid platform to build on top of. The Viewer is a [React][react-url] [Progressive Web Application][pwa-url] that can be embedded in existing applications via it's [packaged source (ohif-viewer)][ohif-viewer-url] or hosted stand-alone. The Viewer exposes [configuration][configuration-url] and [extensions][extensions-url] to support workflow customization and advanced functionality at common integration points. If you're interested in using the OHIF Viewer, but you're not sure it supports your use case [check out our docs](https://deploy-preview-398--ohif.netlify.com/). Still not sure, or you would like to propose new features? Don't hesitate to [create an issue](https://github.com/OHIF/Viewers/issues) or open a pull request ^_^ From 393a3f37d3de878bdeadb3ae785971655b5ea69f Mon Sep 17 00:00:00 2001 From: dannyrb Date: Thu, 25 Apr 2019 15:01:18 -0400 Subject: [PATCH 36/39] MISC urls --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index d1e57e296..57a995fea 100644 --- a/README.md +++ b/README.md @@ -143,6 +143,20 @@ Links: [license-image]: https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square [license-url]: LICENSE +[react-url]: https://reactjs.org/ +[pwa-url]: https://developers.google.com/web/progressive-web-apps/ +[ohif-viewer-url]: https://www.npmjs.com/package/ohif-viewer +[configuration-url]: https://deploy-preview-398--ohif.netlify.com/essentials/configuration.html +[extensions-url]: https://deploy-preview-398--ohif.netlify.com/advanced/extensions.html + +[react-viewer]: https://github.com/OHIF/Viewers/tree/react + +[bugs]: https://github.com/OHIF/Viewers/labels/bug +[requests-feature]: https://github.com/OHIF/Viewers/labels/enhancement +[good-first-issue]: https://github.com/OHIF/Viewers/labels/good%20first%20issue +[google-group]: https://groups.google.com/forum/#!forum/cornerstone-platform + + ### Demos [OHIF Viewer](http://viewer.ohif.org/) - A general-purpose radiology viewer with a variety of tools exposed. From 22e32bc1c7b031c4b5deb3c878ca7ba5378c09cb Mon Sep 17 00:00:00 2001 From: dannyrb Date: Thu, 25 Apr 2019 15:03:31 -0400 Subject: [PATCH 37/39] Simpler getting started; but not advanced scenarios --- README.md | 41 ++--------------------------------------- 1 file changed, 2 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 57a995fea..0cc671e93 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,8 @@ yarn install yarn start ``` +For more advanced local development scenarios, like using your own locally hosted PACS and test data, [check out our Essential: Getting Started](https://deploy-preview-398--ohif.netlify.com/essentials/getting-started.html) guide. + ### Contributing @@ -156,42 +158,3 @@ Links: [good-first-issue]: https://github.com/OHIF/Viewers/labels/good%20first%20issue [google-group]: https://groups.google.com/forum/#!forum/cornerstone-platform - - -### Demos -[OHIF Viewer](http://viewer.ohif.org/) - A general-purpose radiology viewer with a variety of tools exposed. - -[Lesion Tracker](http://lesiontracker.ohif.org/) - A prototype viewer focused on oncology metrics. - -Community ---------- - -Have questions? Try posting on our [google groups forum](https://groups.google.com/forum/#!forum/cornerstone-platform). - -### Docker usage -Following the instructions below, the docker image will listen for DICOM connections on port 4242, and for web traffic on port 8042. The default username for the web interface is `orthanc`, and the password is `orthanc`. -#### Temporary data storage -```` -docker run --rm -p 4242:4242 -p 8042:8042 jodogne/orthanc-plugins -```` - -#### Persistent data storage -1. Create a persistant data volume for Orthanc to use - - ```` - docker create --name sampledata -v /sampledata jodogne/orthanc-plugins - ```` - - **Note: On Windows, you need to use an absolute path for the data volume, like so:** - - ```` - docker create --name sampledata -v '//C/Users/erik/sampledata' jodogne/orthanc-plugins - ```` - -2. Run Orthanc from Docker with the data volume attached - - ```` - docker run --volumes-from sampledata -p 4242:4242 -p 8042:8042 jodogne/orthanc-plugins - ```` - -3. Upload your data and it will be persisted From 98cf09835ae5aa1fdb5d621c7c12c4b39415d142 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Thu, 25 Apr 2019 15:06:09 -0400 Subject: [PATCH 38/39] Point out Viewer architecture --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 0cc671e93..9821df25a 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,8 @@ For more advanced local development scenarios, like using your own locally hoste ### Contributing +> Large portions of the Viewer's functionality are maintained in other repositories. To get a better understanding of the Viewer's architecture and "where things live", read [our docs on the Viewer's architecture](https://deploy-preview-398--ohif.netlify.com/advanced/architecture.html#diagram) + It is notoriously difficult to setup multiple dependent repositories for end-to-end testing and development. That's why we recommend writing and running unit tests when adding and modifying features. This allows us to program in isolation without a complex setup, and has the added benefit of producing well-tested business logic. From b37fd03add421c56077fd673f0c0ca10f39e944a Mon Sep 17 00:00:00 2001 From: dannyrb Date: Thu, 25 Apr 2019 15:12:10 -0400 Subject: [PATCH 39/39] Better description --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9821df25a..13d5b095e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,10 @@ -# Viewers -This repo contains the OHIF DICOM Viewer and Lesion Tracker, and various shared meteor packages. + + +
+

ohif-viewer

+

ohif-viewer is a zero-footprint medical image viewer. It is a configurable and exstensible progressive web application with out of the box support for PACS like orthanc, dcm4che, and Google's Healthcare API.

+
+