- @ohif/extension-cornerstone@0.0.39-alpha.0 - @ohif/extension-dicom-html@0.0.4-alpha.0 - @ohif/extension-dicom-microscopy@0.0.9-alpha.0 - @ohif/extension-dicom-pdf@0.0.8-alpha.0 - @ohif/extension-vtk@0.1.4-alpha.0 - @ohif/core@0.11.1-alpha.0 - @ohif/i18n@0.2.3-alpha.0 - @ohif/ui@0.2.18-alpha.0 - @ohif/viewer@0.0.22-alpha.0 |
||
|---|---|---|
| .circleci | ||
| .netlify | ||
| .vscode | ||
| .webpack | ||
| docs | ||
| extensions | ||
| platform | ||
| .codecov.yml | ||
| .eslintrc | ||
| .gitignore | ||
| aliases.config.js | ||
| babel.config.js | ||
| eslintAliasesResolver.js | ||
| jest.config.base.js | ||
| jest.config.js | ||
| lerna.json | ||
| netlify.toml | ||
| package.json | ||
| README.md | ||
| yarn.lock | ||
OHIF Medical Imaging Platform
The Problem
...
Why Choose Us
...
Quick Start
...
Commands
Global
| Commands | ||
|---|---|---|
build:package |
Builds commonjs bundles for all projects | |
test:unit |
Jest multi-project test runner; overall coverage | |
test:unit:ci |
Runs tests in parallel. Reports coverage per project. |
Local
| Commands | ||
|---|---|---|
test:unit |
Runs tests while watching for changes | |
test:unit:ci |
Runs tests, collects coverage, reports to codecov |
Developing
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.
Requirements
- Yarn 1.17.3+
- Node 8+
- Yarn Workspaces should be enabled on your machine:
yarn config set workspaces-experimental true
Getting Started
- Fork this repository
- Clone your forked repository
git clone https://github.com/YOUR-USERNAME/Viewers.git
- Navigate to the cloned project's directory
- Add this repo as a
remotenamedupstreamgit remote add upstream https://github.com/OHIF/Viewers.git
yarn installto restore dependencies and link projects
To Develop
# Force install
yarn install --force
# Link
# Redundent with yarn workspaces
npx lerna bootstrap
# Link for local dev
cd ./extensions/my-package
npx lerna add @ohif/my-package --scope=@ohif/my-package-consumer
# Add shared dev dependency for workspace
yarn add --dev -W package-name
// 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.
Notes
Lerna requires GH_TOKEN for GitHub authentication token
git remote update 1st call, need to verify host key