2019-07-04 22:12:43 +02:00
|
|
|
# OHIF Medical Imaging Platform
|
2019-06-22 16:02:07 +02:00
|
|
|
|
2019-07-15 21:51:24 +02:00
|
|
|
## The Problem
|
|
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
|
|
## Why Choose Us
|
|
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
|
|
## Quick Start
|
|
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
|
|
## Developing
|
|
|
|
|
|
|
|
|
|
The OHIF Medical Image Viewing Platform is maintained as a
|
|
|
|
|
[`monorepo`][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:
|
|
|
|
|
|
2019-07-11 19:12:37 +02:00
|
|
|
```bash
|
2019-07-15 21:51:24 +02:00
|
|
|
.
|
|
|
|
|
├── 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](#todo).
|
|
|
|
|
|
|
|
|
|
### Requirements
|
2019-07-11 19:12:37 +02:00
|
|
|
|
2019-07-15 21:51:24 +02:00
|
|
|
- [Yarn 1.17.3+](https://yarnpkg.com/en/docs/install)
|
|
|
|
|
- [Node 8+](https://nodejs.org/en/)
|
|
|
|
|
- Yarn Workspaces should be enabled on your machine:
|
|
|
|
|
- `yarn config set workspaces-experimental true`
|
|
|
|
|
|
|
|
|
|
### Getting Started
|
|
|
|
|
|
|
|
|
|
1. [Fork this repository][how-to-fork]
|
|
|
|
|
1. [Clone your forked repository][how-to-clone]
|
|
|
|
|
- `git clone https://github.com/YOUR-USERNAME/Viewers.git`
|
|
|
|
|
1. Navigate to the cloned project's directory
|
|
|
|
|
1. Add this repo as a `remote` named `upstream`
|
|
|
|
|
- `git remote add upstream https://github.com/OHIF/Viewers.git`
|
|
|
|
|
1. `yarn install` to restore dependencies and link projects
|
|
|
|
|
|
|
|
|
|
#### To Develop
|
|
|
|
|
|
|
|
|
|
```bash
|
2019-07-11 19:12:37 +02:00
|
|
|
# Force install
|
|
|
|
|
yarn install --force
|
|
|
|
|
|
|
|
|
|
# Link
|
|
|
|
|
# Redundent with yarn workspaces
|
|
|
|
|
npx lerna bootstrap
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# Link for local dev
|
|
|
|
|
cd ./extensions/my-package
|
|
|
|
|
npx lerna add @ohif/my-package --scope=@ohif/my-package-consumer
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# Add shared dev dependency for workspace
|
2019-07-04 22:12:43 +02:00
|
|
|
yarn add --dev -W package-name
|
2019-06-22 16:02:07 +02:00
|
|
|
```
|
2019-07-11 19:12:37 +02:00
|
|
|
|
|
|
|
|
// module vs main vs jsnext:main vs browser
|
|
|
|
|
https://babeljs.io/blog/2018/06/26/on-consuming-and-publishing-es2015+-packages
|
|
|
|
|
|
|
|
|
|
Webpack: https://webpack.js.org/configuration/resolve/
|
|
|
|
|
|
|
|
|
|
UMD builds go through
|
|
|
|
|
|
|
|
|
|
- index.umd.js
|
|
|
|
|
- Extensions passed in via window config
|
|
|
|
|
|
|
|
|
|
PWA builds go through
|
|
|
|
|
|
|
|
|
|
- index.js
|
|
|
|
|
- Extensions specified in file or by window config
|
|
|
|
|
|
|
|
|
|
> The module property should point to a script that utilizes ES2015 module
|
|
|
|
|
> syntax but no other syntax features that aren't yet supported by browsers or
|
|
|
|
|
> node. This enables webpack to parse the module syntax itself, allowing for
|
|
|
|
|
> lighter bundles via tree shaking if users are only consuming certain parts of
|
|
|
|
|
> the library.
|
2019-07-15 21:51:24 +02:00
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
Links
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
<!-- prettier-ignore-start -->
|
|
|
|
|
|
|
|
|
|
[monorepo]: https://en.wikipedia.org/wiki/Monorepo
|
|
|
|
|
[how-to-fork]: https://help.github.com/en/articles/fork-a-repo
|
|
|
|
|
[how-to-clone]: https://help.github.com/en/articles/fork-a-repo#step-2-create-a-local-clone-of-your-fork
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- prettier-ignore-end -->
|