Compare commits

..
900 Commits
Author SHA1 Message Date
Evren Ozkan f1f2981415 fix(dependencies): Bump cornerstone-tools to 3.11.0 (#497) 2019-05-28 10:49:01 -04:00
Danny Brown 3125cd6417 Merge pull request #496 from dannyrb/fix/codesandbox-embedded
Fix codesandbox link
2019-05-28 10:09:11 -04:00
dannyrb 4795c8d95e Fix codesandbox link 2019-05-28 10:06:54 -04:00
Evren Ozkan 3c8e646f0f fix(dependencies): Bump react-cornerstone-viewport to 0.1.28 (#490)
* fix(dependencies): Bump react-cornerstone-viewport to 0.1.28

* fix(dependencies): Bump ohif-cornerstone-extension to 0.0.31
2019-05-27 19:02:05 -04:00
Evren Ozkan 3bae254a6f fix(hotkeys): Fix the issues with hotkeys (#488)
* wip viewport

* refactoring to do not use dispatch from window

* fixing server active testing

* fix(dependencies): Bump ohif-core to 0.5.5
2019-05-27 11:31:39 -04:00
Evren Ozkan c2eb5f342f Revert "React viewport (#439)" (#487)
This reverts commit b24a502433.
2019-05-27 11:09:11 -04:00
Biharck Araujo b24a502433 React viewport (#439)
Implementing hotkeys actions
2019-05-27 08:22:33 -03:00
Danny Brown e830d0f41e Merge pull request #481 from dannyrb/master
Add roadmap, update embedded-viewer recipe
2019-05-22 16:13:58 -04:00
Danny Brown 812c9bdb49 Merge branch 'master' into master 2019-05-22 16:01:44 -04:00
dannyrb b6fedc434a Update embedded viewer docs 2019-05-22 15:57:35 -04:00
dannyrb e5369b995a Roadmap section to readme 2019-05-22 15:24:38 -04:00
dannyrb 5a2eb9dacc Component library link in title bar 2019-05-22 15:22:59 -04:00
dannyrb 4759860c12 canny assets 2019-05-22 15:22:32 -04:00
dannyrb 6b4463b30a Add demo and roadmap to top of readme 2019-05-22 14:52:26 -04:00
Danny Brown 54253e2f84 Merge pull request #479 from OHIF/all-contributors/add-EsrefDurna
docs: add EsrefDurna as a contributor
2019-05-22 06:34:05 -04:00
allcontributors[bot] 6704eab9e2 docs: update .all-contributorsrc 2019-05-22 10:32:04 +00:00
allcontributors[bot] bfb4c81419 docs: update README.md 2019-05-22 10:32:03 +00:00
Danny Brown 29f8496490 Merge pull request #475 from dannyrb/master
Note regarding meteor version branch location
2019-05-21 15:49:47 -04:00
dannyrb 5aa5b51f7d Note regarding meteor version branch location 2019-05-21 15:49:09 -04:00
Danny Brown 26f536e3fd Merge pull request #474 from dannyrb/master
Missing bracket
2019-05-21 15:13:46 -04:00
dannyrb a87f8326b1 Missing bracket 2019-05-21 15:13:23 -04:00
Danny Brown 7aaf7e8178 Merge pull request #473 from dannyrb/master
add docker badge to readme
2019-05-21 15:12:41 -04:00
dannyrb 125fe5afe5 add docker badge to readme 2019-05-21 15:11:35 -04:00
Danny Brown 567807c148 Merge pull request #472 from dannyrb/master
fix: Tag multiple docker images; push multiple docker images
2019-05-21 14:57:25 -04:00
dannyrb 14d99f1922 fix: Tag multiple docker images; push multiple docker images 2019-05-21 14:51:57 -04:00
Danny Brown d601c881f0 Merge pull request #471 from dannyrb/master
fix: Remove npmrc file if it exists
2019-05-21 14:43:24 -04:00
dannyrb 2a83318cd7 fix: Remove npmrc file if it exists 2019-05-21 14:42:47 -04:00
Danny Brown 6ac48f6c44 Merge pull request #470 from dannyrb/master
fix: push docker image with full version tag
2019-05-21 14:33:31 -04:00
dannyrb c2358c5059 fix: push docker image with full version tag 2019-05-21 14:33:04 -04:00
Danny Brown e950391d40 Merge pull request #469 from dannyrb/master
fix: Now that we can access our new version, lets see if we can use i…
2019-05-21 14:25:17 -04:00
dannyrb 762aee9efa fix: Now that we can access our new version, lets see if we can use it correctly in our docker tag 2019-05-21 14:24:47 -04:00
Danny Brown 4b1969da8a Merge pull request #468 from dannyrb/master
fix: Drop the tilde; may not be part of the workspace we're preserving
2019-05-21 14:13:17 -04:00
dannyrb a02a41f706 fix: Drop the tilde; may not be part of the workspace we're preserving 2019-05-21 14:12:47 -04:00
Danny Brown df4e3ce0c3 Merge pull request #466 from dannyrb/master
fix: Make sure we persist our npm_publish changes so docker_publish c…
2019-05-21 14:02:53 -04:00
dannyrb caf989f77c fix: Make sure we persist our npm_publish changes so docker_publish can access new version number 2019-05-21 14:01:14 -04:00
Danny Brown d96b8329cc Merge pull request #465 from dannyrb/master
fix: Create our tmp directory before we try to create a file in it
2019-05-21 13:50:10 -04:00
dannyrb 50a188a5f1 fix: Create our tmp directory before we try to create a file in it 2019-05-21 13:49:21 -04:00
Danny Brown 95629cfe12 Merge pull request #464 from dannyrb/master
fix: explicit txt extension for tmp version file
2019-05-21 13:43:13 -04:00
dannyrb ca881f207a fix: explicit txt extension for tmp version file 2019-05-21 13:41:42 -04:00
Danny Brown e3fdbc4f2a Merge pull request #463 from dannyrb/master
fix: Try to tag docker image w/ correct/new version number
2019-05-21 13:34:52 -04:00
dannyrb 0fc22f97dd fix: Try to tag docker image w/ correct/new version number 2019-05-21 13:33:50 -04:00
Danny Brown 14a19ca192 Merge pull request #462 from dannyrb/master
Add semantic-release/exec extension
2019-05-21 13:07:09 -04:00
dannyrb 768ac472f9 Add semantic-release/exec extension 2019-05-21 13:05:58 -04:00
Danny Brown 87cf8c210c Merge pull request #461 from dannyrb/master
Test improved docker image tagging
2019-05-21 13:01:48 -04:00
dannyrb e94a01a3e9 formatting 2019-05-21 13:00:03 -04:00
dannyrb 8cc9e5b485 Expand to multiple lines 2019-05-21 12:59:25 -04:00
dannyrb fdd74421cc Push latest tag as well 2019-05-21 12:55:50 -04:00
dannyrb 5feb29422c Try using latest version to bump docker image tag 2019-05-21 12:53:15 -04:00
Danny Brown e848cedbaf Merge pull request #460 from dannyrb/chore/create-tagged-docker-image
Chore/create tagged docker image
2019-05-20 21:32:18 -04:00
Danny Brown 21278c4405 Merge branch 'master' into chore/create-tagged-docker-image 2019-05-20 21:29:27 -04:00
dannyrb d9e9fc45a1 Add docker_publish to master merge 2019-05-20 21:27:47 -04:00
dannyrb 5e81fe8336 Add a default nginx config to use for our published image 2019-05-20 21:27:04 -04:00
dannyrb 851ec0be6a Add a docker_publish job 2019-05-20 21:26:39 -04:00
dannyrb c9630c6a8b Rename dockerfile-web --> dockerfile 2019-05-20 21:26:18 -04:00
dannyrb dea917bea4 Fix cpx command on linux? 2019-05-20 21:25:44 -04:00
Danny Brown c8270b29bf Merge pull request #458 from OHIF/all-contributors/add-allcontributors
docs: add allcontributors as a contributor
2019-05-20 12:04:55 -04:00
allcontributors[bot] 627b621060 docs: update .all-contributorsrc 2019-05-20 16:04:41 +00:00
allcontributors[bot] c8c9c61d19 docs: update README.md 2019-05-20 16:04:40 +00:00
Danny Brown 89c0adeefe Merge pull request #457 from OHIF/all-contributors/add-dannyrb
docs: add dannyrb as a contributor
2019-05-20 12:04:19 -04:00
allcontributors[bot] 5abe368e9e docs: update .all-contributorsrc 2019-05-20 16:04:10 +00:00
allcontributors[bot] f63aeb6208 docs: update README.md 2019-05-20 16:04:09 +00:00
Danny Brown 392c865503 Merge pull request #456 from OHIF/all-contributors/add-galelis
docs: add galelis as a contributor
2019-05-20 12:03:52 -04:00
allcontributors[bot] 5814818d67 docs: update .all-contributorsrc 2019-05-20 16:03:43 +00:00
allcontributors[bot] 90247368a1 docs: update README.md 2019-05-20 16:03:42 +00:00
Danny Brown 75f7214512 Merge pull request #455 from OHIF/all-contributors/add-evren217
docs: add evren217 as a contributor
2019-05-20 12:03:20 -04:00
allcontributors[bot] 342a6da93a docs: update .all-contributorsrc 2019-05-20 16:03:04 +00:00
allcontributors[bot] ca76d7c080 docs: update README.md 2019-05-20 16:03:01 +00:00
Danny Brown dc2975cca0 Merge pull request #454 from dannyrb/master
Shift/re-order contributors
2019-05-20 11:32:00 -04:00
dannyrb 749bb294f1 Shift/re-order contributors 2019-05-20 11:31:05 -04:00
Danny Brown f1ae712e0c Merge pull request #453 from OHIF/all-contributors/add-swederik
docs: add swederik as a contributor
2019-05-20 11:29:20 -04:00
Danny Brown 1f6e855e38 Merge branch 'master' into all-contributors/add-swederik 2019-05-20 11:29:15 -04:00
Danny Brown 1f104c7b29 Merge pull request #452 from dannyrb/master
Bump to latest versions (fixes some misc. icon issues)
2019-05-20 11:29:01 -04:00
allcontributors[bot] 92b20f4f3a docs: create .all-contributorsrc 2019-05-20 15:27:53 +00:00
allcontributors[bot] 58514301f4 docs: update README.md 2019-05-20 15:27:52 +00:00
Danny Brown 7c4fe9f306 Merge branch 'master' into master 2019-05-20 11:25:57 -04:00
Danny Brown 5e12182901 Merge pull request #451 from dannyrb/docs/yalc-docs
Docs/yalc docs
2019-05-20 11:25:44 -04:00
dannyrb ed80dd003f Bump to latest versions (fixes some misc. icon issues) 2019-05-20 11:24:26 -04:00
dannyrb c4c5e731c4 More context 2019-05-20 11:11:11 -04:00
dannyrb 7550cb5fd5 yalc usage instructions 2019-05-20 11:10:30 -04:00
Danny Brown e3d5a3392a Merge pull request #447 from dannyrb/fix/missing-roboto-font
Fix/missing roboto font
2019-05-19 20:20:59 -04:00
Danny Brown 7f8f84fefd Merge branch 'master' into fix/missing-roboto-font 2019-05-19 20:15:44 -04:00
dannyrb a45eb42e6b Add note regarding preference for SVG over entire font for logo text 2019-05-19 20:15:07 -04:00
dannyrb 05c0e1418c fix(index.html): Add Roboto Google Font dependency 2019-05-19 20:14:39 -04:00
dannyrb bb58a5f9f7 Docs for missing roboto font 2019-05-19 20:13:44 -04:00
Danny Brown 6fa65fa39b Merge pull request #446 from dannyrb/chore/remove-v1-config-files
Remove old configuration files
2019-05-19 15:40:12 -04:00
Danny Brown 3811293f36 Merge branch 'master' into chore/remove-v1-config-files 2019-05-19 15:37:49 -04:00
dannyrb b7a0440109 Remove old configuration files 2019-05-19 15:36:14 -04:00
Danny Brown 8978611869 Merge pull request #444 from dannyrb/fix/icons
Fix/icons
2019-05-17 16:20:25 -04:00
dannyrb 0cb179158e fix(icons): Fix icon path finding 2019-05-17 16:15:41 -04:00
dannyrb a03a3f7e29 sneak in remaining icon fix 2019-05-17 16:14:56 -04:00
dannyrb aa34839bf8 Remove unused setup buttons 2019-05-17 16:14:33 -04:00
dannyrb 4cd1763ab7 Fix // issue with icon path resolution 2019-05-17 16:00:37 -04:00
Danny Brown ab929c2827 Merge pull request #443 from OHIF/readme-fixes
docs(README): Fix URL in README, fix typo in docs
2019-05-17 14:44:30 -04:00
Erik Ziegler ec3f1aa58d docs(README): Fix URL in README, fix typo in docs 2019-05-17 16:24:45 +02:00
Danny Brown 4220419cfa Merge pull request #442 from OHIF/readme-fixes
docs(README.md): Updated README to fix URLs
2019-05-17 10:22:00 -04:00
Erik Ziegler a39aa0088d docs(README.md): Updated README to fix URLs 2019-05-17 16:18:00 +02:00
Danny Brown e24f718081 Merge pull request #441 from dannyrb/fix/docs-deploy
Add .nojekyll file
2019-05-17 09:43:36 -04:00
Danny Brown 2f1b05c095 Merge branch 'master' into fix/docs-deploy 2019-05-17 09:43:30 -04:00
dannyrb c5faa1704d Add .nojekyll file 2019-05-17 09:42:38 -04:00
Danny Brown 83c062df31 Merge pull request #440 from OHIF/publish-docs
fix(publishStaticSite): Set publishStaticSite.sh to executable
2019-05-17 09:34:16 -04:00
Erik Ziegler 51e1f3a547 fix(publishStaticSite): Set publishStaticSite.sh to executable 2019-05-17 15:31:39 +02:00
Danny Brown 149ea452ad Merge pull request #437 from dannyrb/fix/docs-deploy
Try shelling out to use our GITHUB_TOKEN env variable
2019-05-16 01:17:48 -04:00
dannyrb c0d6e4cee9 Try shelling out to use our GITHUB_TOKEN env variable 2019-05-16 01:17:09 -04:00
Danny Brown c9db6e2a26 Merge pull request #436 from dannyrb/fix/docs-deploy
Try stubbed git user info
2019-05-16 00:38:13 -04:00
dannyrb 1c0b064d9b Try stubbed git user info 2019-05-16 00:37:12 -04:00
Danny Brown 9dd2177fa4 Merge pull request #434 from dannyrb/fix/docs-deploy
Trust unknown hosts in docs:publish step
2019-05-16 00:06:11 -04:00
dannyrb 39112c211d Employ same trick for publishing docs "trust" github host 2019-05-16 00:05:19 -04:00
Danny Brown c1c3241be4 Merge pull request #433 from dannyrb/fix/docs-deploy
Rename command to publish
2019-05-15 23:55:56 -04:00
dannyrb 462d4b5f10 Rename command to publish 2019-05-15 23:54:47 -04:00
Danny Brown d09abfd0e8 Merge pull request #432 from dannyrb/fix/docs-deploy
Publish docs to gh-pages on merge to master
2019-05-15 23:16:21 -04:00
dannyrb c90c3e2f98 Publish docs to gh-pages on merge to master 2019-05-15 23:12:46 -04:00
Danny Brown 6f4f098671 Merge pull request #431 from dannyrb/react
🎉 Let there be React 🎉
2019-05-15 22:00:53 -04:00
dannyrb f1b1c83751 Update circleci and semantic-release to handle master merges 2019-05-15 21:55:03 -04:00
dannyrb d69b014721 Merge branch 'master' into react
We're shifting master to a new branch named v1.x. Any changes made since the react branch were forked are not applicable to v2.x development. We'll recursively merge using the "ours" strategy, and then pull this into master to effectively make our "react" version (v2.x) the new master.
2019-05-15 21:47:18 -04:00
Evren Ozkan e9c54f17de fix(dependencies): Bump ohif-cornerstone-extension to 0.0.30 (#430) 2019-05-15 18:54:20 -04:00
Evren Ozkan 5818b654b4 fix(layout): Set currentImageIdIndex to 0 if image is not found (#429)
* fix(layout): Set currentImageIdIndex to 0 if image is not found

* fix(dependencies): Bump react-cornerstone-viewport to 0.1.27
2019-05-15 18:23:18 -04:00
Danny Brown be8c243bf8 Merge pull request #427 from dannyrb/react
Set and use enabled element
2019-05-15 15:50:27 -04:00
dannyrb 776f5b0e8c No need to produce a warning here 2019-05-15 15:45:42 -04:00
dannyrb f925c8a380 bumpity bump bump 2019-05-15 15:09:48 -04:00
dannyrb 3d1a43f52d bump own version 2019-05-15 15:05:32 -04:00
dannyrb 36daa8afe2 bump react-cornerstone-viewport dependency version 2019-05-15 15:05:03 -04:00
dannyrb 49d574d8ac Position this absolutely near the top left of our page 2019-05-15 14:24:04 -04:00
dannyrb f1df6ebba5 bump 2019-05-15 09:22:48 -04:00
dannyrb 724ba44aee fix grabbing enabled element 2019-05-15 09:17:43 -04:00
dannyrb 4ad93943dc bump 2019-05-14 23:21:45 -04:00
dannyrb 2cd3bf2848 bump 2019-05-14 22:15:52 -04:00
dannyrb 557fdce016 less error-prone import 2019-05-14 22:12:34 -04:00
dannyrb 25ae0bddc6 feat(CinePlayer): expose cornerstone enabled element for use in CINE player button actions 2019-05-14 22:00:35 -04:00
dannyrb 0a4fee7337 Use the DOM that should now be set for each viewport to influence button behavior 2019-05-14 21:47:15 -04:00
dannyrb d430596025 Try capturing and setting the dom reference in our viewports module 2019-05-14 21:38:31 -04:00
dannyrb 1ff173b3e8 Capture yarn.lock change 2019-05-14 21:37:20 -04:00
dannyrb cb745a220f Bump dependencies higher up in the config; change react-cornerstone-viewport to the flagged expose-dom release 2019-05-14 21:36:47 -04:00
dannyrb fe3fb0ff50 Merge branch 'react' of github.com:OHIF/Viewers into react 2019-05-14 13:23:02 -04:00
dannyrb b6902e40f6 Cleaning 2019-05-14 13:21:07 -04:00
Evren Ozkan 065a81d6e7 fix(measurements): Show missing measurements in measurement table (#426)
- Bump cornerstone-tools to 3.9.0, ohif-core to 0.5.2 and react-viewerbase to 0.4.1
- Add bidirectional, elliptical, circle and rectangle roi tools
- Support labeling and context-menu for all annotation tools
- Sort measurements by lesion naming number to show the last added measurement in the end in measurement table
2019-05-13 18:07:57 -04:00
Danny Brown 12172eaf48 Merge pull request #425 from dannyrb/docs/update-historical-meteor-docs
Update historical meteor docs
2019-05-13 15:17:30 -04:00
dannyrb e867ec58a4 cp instead of mv 2019-05-13 15:07:02 -04:00
dannyrb 1679a0f93e Try a slightly revised generateStaticSite script 2019-05-13 14:52:13 -04:00
dannyrb 5e37931aad Update summary link 2019-05-13 14:45:34 -04:00
dannyrb 0be2d1e675 Previous version URL and update list formatting 2019-05-13 14:44:02 -04:00
dannyrb d83ebc9ae1 Copy pasta Google Cloud Healtcare docs 2019-05-13 14:31:57 -04:00
dannyrb d27d56b1bf Attempt at fixing a syntax error 2019-05-13 14:31:00 -04:00
dannyrb e12214395b Collective changes since fork 2019-05-13 14:19:33 -04:00
dannyrb e501f268bf Make sure we move all files/folders 2019-05-13 14:13:47 -04:00
Danny Brown 12eefb3108 Merge pull request #424 from dannyrb/docs/last-bits
Note regarding different repositories
2019-05-13 13:54:32 -04:00
dannyrb b6d9b9aefc Tidying up contribution docs 2019-05-13 13:47:42 -04:00
dannyrb d10710ec51 Copy-pasta and trim 2019-05-13 13:14:08 -04:00
dannyrb 9f0004659e Next steps 2019-05-13 13:03:06 -04:00
dannyrb 1eb930239d Configuration 2019-05-13 13:02:41 -04:00
dannyrb e45dcc9f33 Setup and troubleshooting 2019-05-13 13:02:16 -04:00
dannyrb 2333eb294d Requirements 2019-05-13 13:01:38 -04:00
dannyrb 2d2df3a9de Provide diagram as a partial 2019-05-13 12:59:20 -04:00
dannyrb ee31127b08 Explaining web requests, cors, and diagram of flow 2019-05-13 12:58:59 -04:00
dannyrb 69564569dc High level summary 2019-05-13 11:58:43 -04:00
dannyrb 19dc9b6d99 nginx-image-archive diagram 2019-05-13 11:52:11 -04:00
dannyrb 56624fdc6c Note about adding own recipes 2019-05-13 11:39:52 -04:00
dannyrb ae33915991 Helpful image and breakdown of "what is covered" by the viewer/project 2019-05-13 11:31:51 -04:00
dannyrb f3bae8bb8f Scope of project image 2019-05-13 11:31:08 -04:00
dannyrb 633429411d Note regarding different repositories 2019-05-10 15:20:15 -04:00
Danny Brown af48839414 Merge pull request #423 from dannyrb/docs/reamining-cleanup
Docs/reamining cleanup
2019-05-10 15:15:16 -04:00
dannyrb 23eb3a427d Remove data links from sidebar 2019-05-10 15:12:59 -04:00
dannyrb 83987f297c Remove empty data blurb for now 2019-05-10 15:12:46 -04:00
dannyrb e6eec6b1ad OIDC settings and security 2019-05-10 15:09:31 -04:00
dannyrb 10e5f849fe Update data link 2019-05-10 15:09:13 -04:00
dannyrb c8130d1dc8 Outlining security section 2019-05-10 14:53:23 -04:00
dannyrb 24c807bc60 What if my archive doesn't support DicomWeb? 2019-05-10 14:53:09 -04:00
dannyrb bcf1e4058d On proxy and cors 2019-05-10 14:52:46 -04:00
dannyrb cc2d7e0864 No image archive? No problem 2019-05-10 14:52:31 -04:00
dannyrb 252921c470 Point prepared users to the configuration docs 2019-05-10 14:52:14 -04:00
dannyrb 90812d123e Remove docker outline 2019-05-10 14:51:59 -04:00
dannyrb 65724394bd Blurb regarding current state of tool management 2019-05-10 14:04:57 -04:00
dannyrb 169399f9cb Clear out scope-of-project file 2019-05-10 13:58:45 -04:00
dannyrb 90d79ec9e2 White labeling (custom logo) notes 2019-05-10 13:58:30 -04:00
dannyrb e90913b0a5 Fix link 2019-05-10 13:58:04 -04:00
dannyrb e53b57a642 Configuration 2019-05-10 09:55:24 -04:00
dannyrb 5acb30d7f0 Auto-format 2019-05-10 09:51:41 -04:00
dannyrb c1eeba27fc Delete dcm4chee-with-docker guide. If we do this, we'll expose it the same way we did w/ orthanc 2019-05-10 09:49:53 -04:00
dannyrb 2632824feb Architecture --> Scope of project 2019-05-10 09:47:34 -04:00
dannyrb 2f0c40f64a CTA for troubleshooting 2019-05-10 09:47:12 -04:00
dannyrb 5609070fd8 Add installation 2019-05-10 09:46:58 -04:00
dannyrb f8d8e1ad51 Remove empty deployment page 2019-05-10 09:33:39 -04:00
dannyrb 74cac08ce7 Add a snapshot of our config 2019-05-10 09:29:18 -04:00
dannyrb 522f29d359 Note about other image archives 2019-05-10 09:26:03 -04:00
dannyrb 5c8b4c7e0e Requirements for local data source 2019-05-10 09:25:51 -04:00
dannyrb ed91e2678f This is outdated - refer to /docs 2019-05-10 09:18:46 -04:00
dannyrb 2d48893602 Remove publicserver example (we get this for free with CRA) 2019-05-10 09:18:28 -04:00
Danny Brown d0802fa266 Merge pull request #420 from dannyrb/docs/orthanc-proxy
Docs/orthanc proxy
2019-05-10 09:01:51 -04:00
dannyrb 8fc0f4c60a Remove confusing "it should say" comment 2019-05-10 00:38:54 -04:00
dannyrb 010ef0c786 formatting 2019-05-10 00:36:27 -04:00
dannyrb 94d602e6b1 requestFromBrowser is required until we update ohif-core 2019-05-10 00:36:11 -04:00
dannyrb 73713664b2 Nuke orthanc w/ docker old readme 2019-05-10 00:35:50 -04:00
dannyrb a0feaa3dad More data-source fun 2019-05-10 00:35:36 -04:00
dannyrb 399c71b22c Don't check in any orthanc files 2019-05-10 00:13:28 -04:00
dannyrb ec56239b70 Don't check in any orthanc files 2019-05-10 00:13:03 -04:00
dannyrb f42459eb9e Trying to setup local CORS; better docker dir naming 2019-05-10 00:09:04 -04:00
dannyrb 450385391e Simplify spinning up orthanc 2019-05-09 23:25:07 -04:00
dannyrb 7617e23ee6 Shift table to bottom of page 2019-05-09 23:24:50 -04:00
dannyrb 429392e88e Local orthanc instance w/ persistant storage 2019-05-09 23:17:25 -04:00
dannyrb 31838b9ef3 Building for production: quick hits 2019-05-09 22:26:17 -04:00
dannyrb a57309f2c9 Remove meteor-packages file 2019-05-09 22:14:25 -04:00
dannyrb 09369ef2cc Trim getting started 2019-05-09 22:14:01 -04:00
dannyrb 4c1aaa7d00 Add data source page 2019-05-09 22:13:39 -04:00
dannyrb 4a1026340a Themeing docs 2019-05-09 22:13:20 -04:00
dannyrb 6582d6367e Mark required props as required; sensible defaults for optional props 2019-05-09 16:10:14 -04:00
dannyrb 1772317aa3 Remove app props we never see provided 2019-05-09 16:09:34 -04:00
dannyrb cfd1cd0797 Only set a userManager if we have a non-empty oidc array 2019-05-09 16:07:21 -04:00
dannyrb ba33493cf8 More verbose installation steps + flow 2019-05-09 15:48:23 -04:00
dannyrb 354eebf592 Quick CTA regarding meteor vs react versions 2019-05-09 15:48:01 -04:00
dannyrb 925a1dfb73 Add an aliased start script 2019-05-09 15:47:38 -04:00
dannyrb fb1d2beb4a Where to next? 2019-05-09 14:13:28 -04:00
dannyrb 6b53ac8572 Updated introduction page 2019-05-09 14:06:19 -04:00
dannyrb 28e46498f2 Shuffle files around 2019-05-09 13:31:42 -04:00
dannyrb bf7553675d Merge branch 'docs/orthanc-proxy' of github.com:dannyrb/Viewers into docs/orthanc-proxy 2019-05-09 12:16:14 -04:00
dannyrb 52e156fbe6 multi-line so it doesn't break page layout 2019-05-09 12:15:51 -04:00
Danny Brown b7f100f601 Merge branch 'react' into docs/orthanc-proxy 2019-05-09 12:10:16 -04:00
dannyrb 2fac6db880 Formatting 2019-05-09 12:09:21 -04:00
dannyrb 6ee83a8043 Clean up our hodge podge of links 2019-05-09 12:07:46 -04:00
dannyrb 315fb1480e Persist our orthanc data 2019-05-09 12:07:15 -04:00
dannyrb 266e819113 Keycloak theme images 2019-05-09 12:07:02 -04:00
dannyrb 988f9950b8 What we would improve if we had more time 2019-05-09 12:06:36 -04:00
dannyrb 9f664ed896 Using PostgresSql w/ Orthanc 2019-05-09 12:06:23 -04:00
dannyrb fdbc2f16a9 Values to change 2019-05-09 11:25:29 -04:00
dannyrb 289838270a Rebuilding the OHIF Viewer 2019-05-09 11:25:19 -04:00
dannyrb 48e933912f Note regarding SSL next steps 2019-05-09 11:25:00 -04:00
dannyrb 083cfd27d1 Some helpful docker commands 2019-05-09 11:24:48 -04:00
dannyrb ee2bebd974 First time setup 2019-05-09 11:24:33 -04:00
dannyrb 6935cbe373 Commit our secret 2019-05-09 11:08:14 -04:00
dannyrb 060882d93a Switch everything to use the OHIF realm; we can't seed the master realm, because it already exists. 2019-05-09 10:43:59 -04:00
dannyrb b1ef87cfce Set a default custom theme for OHIF login 2019-05-09 08:59:34 -04:00
dannyrb c8f3c3af6c Add reusable diagram 2019-05-08 23:37:45 -04:00
dannyrb 9bab503f32 Lingering image to squash 2019-05-08 22:43:32 -04:00
dannyrb b081ae18eb Add our basic diagram 2019-05-08 22:43:16 -04:00
dannyrb 11cadc3145 Shift design files over to docs/assets 2019-05-08 22:42:26 -04:00
dannyrb dc5eaa13ac Files already exist in docs/v1/assets 2019-05-08 22:35:00 -04:00
dannyrb e573edfd66 Formatting 2019-05-08 20:24:06 -04:00
dannyrb 5cd9d8c819 Warning about access token fail 2019-05-08 20:14:16 -04:00
dannyrb c0ddf5a6c6 Updated seed data for keycloak 2019-05-08 20:13:24 -04:00
dannyrb db281d3219 Auth separate client if token not set 2019-05-08 14:50:26 -04:00
dannyrb d17861bf84 add jwt decoded image 2019-05-08 13:08:02 -04:00
dannyrb 8f2fd7418b Local docker-ignore file 2019-05-08 13:07:50 -04:00
dannyrb 7a4fb95e10 Use JWT auth (don't need to hit auth server) to verify for /pacs/ dicom-web 2019-05-08 13:07:20 -04:00
dannyrb 1803188033 Use a more secure flow, and be more explicit with redirects for security's sake 2019-05-08 13:06:15 -04:00
dannyrb acbb593cec Make sure we're setting our bearer token; not basic auth 2019-05-08 13:03:17 -04:00
dannyrb 5e8f5360b6 Load catch-all static assets to bottom of route matching 2019-05-08 09:01:04 -04:00
dannyrb c33b468f1e Group related lines 2019-05-08 08:59:33 -04:00
dannyrb 88517fc282 Group related lines 2019-05-08 08:59:13 -04:00
dannyrb f495ccfa3f Clean up oidc config 2019-05-07 15:42:11 -04:00
dannyrb aa768c7fd4 Add server_tokens note 2019-05-07 12:37:16 -04:00
dannyrb 88c6efd139 Prefer explicit IP over localhost 2019-05-07 12:36:58 -04:00
dannyrb 0a61ef1bb5 Include mime.types without the server crashing 2019-05-07 12:36:39 -04:00
dannyrb cccbe235e0 Setup error/access logs in config 2019-05-07 12:36:21 -04:00
dannyrb f6e0c553f5 Fix error/access log mounts 2019-05-07 12:35:55 -04:00
dannyrb fdb7a99a33 More specific orthanc setup 2019-05-07 12:35:36 -04:00
dannyrb c057357515 Fixing keycloak + postgres setup 2019-05-07 12:34:58 -04:00
dannyrb 512f640e8a Init keycloak with a predictable realm/client/setting/secret 2019-05-07 12:33:18 -04:00
dannyrb 8ebabc1447 Provide a default orthanc.json that includes plugin locations for the image 2019-05-07 12:29:55 -04:00
dannyrb 548e974f69 Init oidc twice 2019-05-07 12:29:34 -04:00
dannyrb 4928085416 Use a specific version 2019-05-07 12:28:53 -04:00
dannyrb c9fcedb247 Begin laying out keycloak configuration 2019-05-06 16:01:45 -04:00
dannyrb dc16e0856c Clean up docker-compose 2019-05-06 16:01:07 -04:00
dannyrb 93624f9941 Comment out incorrect mime.types location 2019-05-06 16:00:25 -04:00
dannyrb a4933447ec Move log files up top 2019-05-06 16:00:00 -04:00
dannyrb 8e939eb491 Revised dockerfile notes 2019-05-06 14:11:40 -04:00
dannyrb f8f4584f4e Remove unreferenced config files 2019-05-06 13:49:52 -04:00
dannyrb 411baa702a Shift and rename files to match defaults 2019-05-06 13:47:33 -04:00
dannyrb 8114f4fe48 Begin writing UAC docs now that we have a workign example 2019-05-06 13:03:35 -04:00
dannyrb 1d7527c919 Cleaning up nginx config file and adding notes 2019-05-06 13:03:00 -04:00
dannyrb 915fee5eb0 docker-compose 2019-05-04 21:51:53 -04:00
dannyrb e1ddbd9777 Rename the simpler dockerfile in root to dockerfile-web 2019-05-04 21:51:26 -04:00
dannyrb 9f9e8c9635 Replaced this with the dockerfile in root 2019-05-04 21:51:09 -04:00
dannyrb d9ee7dd3b3 second config 2019-05-04 21:50:53 -04:00
dannyrb 471378e4d8 Disable orthanc authentication 2019-05-04 21:50:08 -04:00
dannyrb c8b3374899 Playing with different js configs 2019-05-04 21:49:46 -04:00
dannyrb 24e47d6810 Some rough notes for myself 2019-05-04 21:49:16 -04:00
dannyrb 2b71866bdb Note regarding command to build image 2019-05-03 21:21:42 -04:00
dannyrb 0852e33cd1 Copy our build output into a folder we can serve (static content; pwa) 2019-05-03 21:21:11 -04:00
dannyrb 337bd5ffc9 Switch to openresty image (nginx with some lua magic) 2019-05-03 21:20:43 -04:00
dannyrb ea7e7e3292 Set the config we'd like to use when building our app 2019-05-03 21:19:41 -04:00
dannyrb 08db413024 Use first client config to create our UserManager 2019-05-03 21:18:13 -04:00
Evren Ozkan c9ddb23d9c Add measurement table functions (#415)
* fix(measurements): Add measurement table functions
- Support for labeling measurements and adding measurement description
- Jump to measurement when clicked on measurement table

* fix(layout): Fix the issues with layout when switched with different plugins

* fix(measurements): Support for deleting measurements in measurement table

* fix(measurements): Add context menu for measurements

* fix(dependencies): Bump ohif-core to 0.4.2
2019-05-02 17:12:06 -04:00
dannyrb 2a56ec5c5f Keycloak and authproxy 2019-05-02 12:59:31 -04:00
Danny Brown 0bab19985e Merge pull request #416 from dannyrb/docs/orthanc-proxy
Docs/orthanc proxy
2019-05-02 08:54:41 -04:00
dannyrb 6a84c377fc Use build output folder; not public folder 2019-05-01 16:39:20 -04:00
dannyrb 3821e8a4d9 Copy the build output directory; not the unbuilt public files 2019-05-01 16:38:34 -04:00
dannyrb b8dd70f2c8 Some comments 2019-05-01 16:38:17 -04:00
dannyrb 7c62466994 docker-compose note 2019-05-01 16:37:53 -04:00
Danny Brown efcdad7e67 Merge pull request #414 from dannyrb/fix/broken-icons-link
fix(App.js): Fixed broken toolbar icons not rendering with base tag r…
2019-05-01 13:37:26 -04:00
dannyrb 2cbeb26eb4 Make sure our baseDirectory ends in a forward slash 2019-05-01 13:28:18 -04:00
dannyrb f583af0f20 Remove typo in names 2019-05-01 13:13:11 -04:00
dannyrb 7f52bade3e Pull config from window for now 2019-05-01 13:10:44 -04:00
dannyrb 94e45b1b65 Add unit test 2019-05-01 13:07:43 -04:00
dannyrb 3a38bdd416 fix(App.js): Fixed broken toolbar icons not rendering with base tag removed 2019-05-01 12:56:41 -04:00
Danny Brown 6bed32d229 Merge pull request #412 from dannyrb/deploying-static-site-2
Guide for different static asset hosts/deployment
2019-05-01 12:37:27 -04:00
dannyrb ac86c178d2 Fix typo 2019-05-01 12:30:52 -04:00
dannyrb 7cd85f78af Update guide links 2019-05-01 12:14:34 -04:00
dannyrb dfd5c28d9f Links for AWS/GCP/Azure 2019-05-01 12:10:44 -04:00
dannyrb 22a05ba718 Copy links from top of deploy-static 2019-05-01 11:55:58 -04:00
Danny Brown 7914adb033 Merge branch 'react' into deploying-static-site-2 2019-05-01 11:53:36 -04:00
dannyrb 4e9890bec6 Merge branch 'deploying-static-site-2' of github.com:dannyrb/Viewers into deploying-static-site-2 2019-05-01 11:52:39 -04:00
dannyrb 4d1b88d251 Begin stubbing 2019-05-01 11:52:33 -04:00
dannyrb 3fcae202c8 GitHub pages and advanced pre-amble 2019-05-01 11:52:11 -04:00
Evren Ozkan 7ff9a87b6e fix(wado-proxy): Use wado proxy to retrieve images if enabled in configuration 2019-05-01 11:27:53 -04:00
dannyrb 66925566a2 Hammering out the easier deployment providers 2019-05-01 11:22:52 -04:00
dannyrb 4c6dd2f61d Add netlify drop GIF 2019-05-01 08:42:40 -04:00
dannyrb 553806f612 Show settings; CTA: Netlify-Drop 2019-05-01 08:42:22 -04:00
dannyrb 11ee986ad4 Formatting; change image location 2019-05-01 08:41:41 -04:00
Evren Ozkan 4532d2fe7f bump(dependencies): Bump ohif-cornerstone-extension to 0.0.28 and react-viewerbase to 0.3.2 2019-04-30 16:47:14 -04:00
Danny Brown fd3c8161f7 Merge pull request #411 from dannyrb/deploying-static-site-2
fix webworkers
2019-04-30 16:16:19 -04:00
Danny Brown c555bd9fa2 Merge branch 'react' into deploying-static-site-2 2019-04-30 16:12:16 -04:00
dannyrb 686f613fd0 Use absolute path for webworker scripts 2019-04-30 16:11:06 -04:00
Danny Brown 09b71f6c2b Merge pull request #410 from dannyrb/deploying-static-site-2
docs: stand-alone static deploy
2019-04-30 15:58:56 -04:00
dannyrb 4cecdcc3dc Defaults 2019-04-30 13:37:28 -04:00
dannyrb 81cf8cbd7c Set ENV variables in scripts instead of in build 2019-04-30 13:36:25 -04:00
dannyrb 33d06dba4e how it works 2019-04-30 11:56:13 -04:00
dannyrb 0909ab7c53 Transition to configuration 2019-04-30 10:39:24 -04:00
dannyrb b5cac7191d add .js to app config 2019-04-30 10:08:10 -04:00
dannyrb 140c0b48e7 Merge branch 'deploying-static-site-2' into react-upstream 2019-04-30 09:59:16 -04:00
dannyrb 8e4b0ac737 Merge build and restore sections 2019-04-30 09:52:51 -04:00
Danny Brown 12f6553432 Merge pull request #395 from OHIF/react-documentation
React documentation
2019-04-30 09:51:44 -04:00
Danny Brown 22bf63f279 Merge branch 'react' into react-documentation 2019-04-30 09:45:33 -04:00
biharck 5938ffb676 removing example folder 2019-04-30 10:38:45 -03:00
biharck 530b86d752 Merge branch 'react-documentation' of github.com:OHIF/Viewers into react-documentation 2019-04-30 10:36:37 -03:00
biharck b186e86906 adding --max_old_space_size=4096 to the build:web task 2019-04-30 10:35:35 -03:00
biharck 4853d4fae4 updating .dockignore file and fixing dockerfile 2019-04-30 10:35:09 -03:00
biharck f8e8acd9e9 updating docker-compose files to adhere new way to deploy 2019-04-30 10:33:47 -03:00
biharck e39e3dd5d5 merge from ract and adding docker-compose PACs configuration files 2019-04-30 10:32:53 -03:00
dannyrb d844308e32 Add test for utils folder grouped exports 2019-04-30 00:03:47 -04:00
dannyrb bff397d88e Rough notes "Build for Production" 2019-04-29 23:49:29 -04:00
dannyrb 70a9b9ca06 For step 1, point users to the "build for production" guide 2019-04-29 23:11:04 -04:00
dannyrb 6e058ef312 Update link to point to react branch 2019-04-29 21:48:38 -04:00
dannyrb 1b14730013 Begin detailing steps to build for production (host static assets) 2019-04-29 21:48:26 -04:00
dannyrb b3b5f5321f Add build for production page 2019-04-29 21:48:03 -04:00
Danny Brown 27065dd303 Merge pull request #408 from dannyrb/docs/deploying-static-site
Docs/deploying static site
2019-04-29 16:26:15 -04:00
dannyrb b279d1fc82 Don't collect coverage from __test__ dirs 2019-04-29 16:23:38 -04:00
dannyrb 88733202de Use default config when building for scripts package 2019-04-29 16:17:02 -04:00
dannyrb 0b87dc4ddb formatting 2019-04-29 15:53:46 -04:00
dannyrb ed5fdb1de2 Test that we return _something_ 2019-04-29 15:52:04 -04:00
dannyrb 97a8a4f52c Super basic oidc tests 2019-04-29 15:42:21 -04:00
dannyrb 69fb4d7947 Shift oidc and initWebworkers to own files 2019-04-29 15:39:09 -04:00
dannyrb 70f83f131a Try to find ideal defaults 2019-04-29 15:06:17 -04:00
dannyrb a5146e6f38 Remove basetag 2019-04-29 15:00:51 -04:00
dannyrb 319af9bde3 Nuke root url 2019-04-29 14:42:29 -04:00
dannyrb 1d7ddd5bf5 Delete examples/ 2019-04-29 14:18:13 -04:00
dannyrb 6177a02f18 Shift default config to own file 2019-04-29 13:29:37 -04:00
dannyrb 0d5ac9ce4c Fix build script to point at /demo 2019-04-29 13:21:14 -04:00
dannyrb eec3155298 Simplify loading init config 2019-04-29 13:20:11 -04:00
dannyrb 775a91152c Specify our netlify config 2019-04-29 13:19:17 -04:00
dannyrb 0748f27cf2 Import a public config 2019-04-29 13:18:41 -04:00
dannyrb 4127126388 remove homepage key 2019-04-29 12:58:57 -04:00
dannyrb 50e8cf341a Add dotenv syntax highlighting to list of recommended extensions 2019-04-29 12:58:34 -04:00
Danny Brown 70ddba7aed Merge branch 'react' into react-documentation 2019-04-29 10:25:47 -04:00
dannyrb e43139eec5 Be a bit more explicit with homepage url 2019-04-29 09:50:31 -04:00
dannyrb c9b043420b Revert codesplitting 2019-04-29 09:22:20 -04:00
dannyrb 0c09e073b6 Cast a wider net 2019-04-29 09:13:31 -04:00
dannyrb 6286893eb8 Rollup support for dynamic import 2019-04-29 08:58:15 -04:00
dannyrb 68b021fc80 Try a demo only redirect 2019-04-29 08:52:52 -04:00
dannyrb a7f77ca543 Send over everything, not just top level dir 2019-04-29 08:35:58 -04:00
dannyrb e5865515e7 formatting 2019-04-29 08:33:48 -04:00
dannyrb 19aa4b23cd Codesplit at route level 2019-04-29 08:32:49 -04:00
dannyrb 5713de49e2 Remove unused routes/index.js 2019-04-29 08:32:26 -04:00
dannyrb 91613d6bb0 Async component for dynamic imports 2019-04-29 08:31:40 -04:00
dannyrb f02559c778 Try an all-in-one script 2019-04-29 07:03:54 -04:00
dannyrb 803aaafdcf Use CPX command 2019-04-29 06:52:02 -04:00
dannyrb 5aba221957 Try to limit heap size during build 2019-04-28 19:12:51 -04:00
dannyrb fbd75ed1e7 Formatting; rename BrowserRouter to Router 2019-04-28 15:54:56 -04:00
dannyrb c94c8003d7 Fix copy path 2019-04-28 15:36:19 -04:00
dannyrb 5cdfc64ccf Set PUBLIC_URL to demo 2019-04-28 15:35:10 -04:00
dannyrb af2be5c1e0 Copy all build output to /demo 2019-04-28 15:25:53 -04:00
Danny Brown 6f0a222e17 Merge branch 'react' into docs/deploying-static-site 2019-04-28 15:16:56 -04:00
dannyrb 66f587a5f9 Pull info from node env var, not package.json 2019-04-28 15:14:20 -04:00
dannyrb 3447c80a6a Split build command; one for web, one for package source 2019-04-28 14:59:47 -04:00
Danny Brown 26e934493c Merge pull request #407 from dannyrb/docs/deploying-static-site
docs: deploying as a static site
2019-04-28 14:38:23 -04:00
dannyrb 8a16892a0c Unused files 2019-04-28 14:33:25 -04:00
dannyrb 32f8d74327 Spelling 2019-04-28 14:32:28 -04:00
dannyrb 213d88ed46 Cleaning up menu further 2019-04-28 14:32:00 -04:00
dannyrb b6a189700e Rough outline for data section 2019-04-28 14:26:03 -04:00
dannyrb f08e589cd2 Footer links to ease readability 2019-04-28 14:02:41 -04:00
dannyrb fcd2d63c5b Stand-alone viewer section 2019-04-28 13:44:51 -04:00
dannyrb 1ae6704ed0 Update menu 2019-04-28 13:44:33 -04:00
dannyrb 398f4eb5ec Formatting 2019-04-28 13:44:07 -04:00
dannyrb 0b8626496b Fix start number 2019-04-28 12:58:25 -04:00
dannyrb c1f7e0ef65 Help page 2019-04-28 12:53:20 -04:00
dannyrb 85e3240597 FAQ formatting 2019-04-28 12:52:31 -04:00
dannyrb 223d986f82 Embedded viewer docs 2019-04-28 12:52:10 -04:00
dannyrb 3b8987ecb1 Embedded viewer deployment scenario 2019-04-28 11:04:27 -04:00
dannyrb aad2916933 Embedded-viewer-diagram assets and images 2019-04-28 11:03:59 -04:00
dannyrb c01f3aa920 High level summary of deployment 2019-04-27 16:23:25 -04:00
dannyrb b820f885a1 Switch sidebar and file locations up for more logical grouping 2019-04-27 15:44:02 -04:00
biharck a8fc20ede4 fixing run-queue-1.0.3 integrity 2019-04-26 22:47:44 -03:00
biharck 276d304f7a fixing yarn lock file 2019-04-26 22:41:42 -03:00
biharck bfedc907bb merging with react branch 2019-04-26 22:34:57 -03:00
biharck 5d34a85d05 adding Troubleshooting details when docker needs to increase memory size 2019-04-26 22:30:50 -03:00
biharck b0d06baf29 adding more details at the getting-started readme and changing react index to use .js config files 2019-04-26 22:20:17 -03:00
biharck 610aeb1b9a rolling back querystring 2019-04-26 22:04:11 -03:00
Danny Brown 1169ad028a Merge pull request #406 from dannyrb/chore/repository-cleanup
test semantic-release w/ dry run flag
2019-04-26 16:33:14 -04:00
Danny Brown a407dfa3f7 Merge branch 'react' into chore/repository-cleanup 2019-04-26 16:29:49 -04:00
dannyrb bb748a2ec3 Test w/ dry run flag 2019-04-26 16:28:05 -04:00
biharck 7991b41287 moving config files from json to js objects and injecting them at example page 2019-04-26 17:16:41 -03:00
biharck ceafbbcdb8 moving config files from json to js objects and injecting them at example page 2019-04-26 17:07:25 -03:00
Danny Brown 4f4dae75aa Merge pull request #405 from dannyrb/chore/repository-cleanup
Attempt release with --no-ci flag
2019-04-26 15:43:03 -04:00
dannyrb 6c438b4e11 Attempt release with --no-ci flag 2019-04-26 15:41:40 -04:00
Danny Brown 2d82838c2b Merge pull request #404 from dannyrb/chore/repository-cleanup
Specify branch differently in releaserc
2019-04-26 15:22:15 -04:00
dannyrb 9c84420e4a Merge branch 'chore/repository-cleanup' of github.com:dannyrb/Viewers into chore/repository-cleanup 2019-04-26 15:21:13 -04:00
dannyrb 15b771fedc Specify branch differently in releaserc 2019-04-26 15:21:07 -04:00
Danny Brown ad5187a92b Merge pull request #403 from dannyrb/chore/repository-cleanup
Debug why we're not cutting a release
2019-04-26 15:11:20 -04:00
Danny Brown cbf5aab550 Merge branch 'react' into chore/repository-cleanup 2019-04-26 15:11:10 -04:00
dannyrb 47fa31542d Debug why we're not cutting a release 2019-04-26 15:09:35 -04:00
Danny Brown 7c06e214ad Merge pull request #402 from dannyrb/chore/repository-cleanup
Chore/repository cleanup
2019-04-26 14:43:30 -04:00
dannyrb 5a91b5704b fix(package.json): Test automatic build and release w/ semantic-release 2019-04-26 14:39:03 -04:00
dannyrb e55787e184 ci(package.json): Support for yarn run cm via commitizen for well formatted commit messages 2019-04-26 14:37:25 -04:00
Danny Brown f20822bd3d Merge branch 'react' into chore/repository-cleanup 2019-04-26 14:28:52 -04:00
dannyrb d43fc16c06 Configure react branch as release branch 2019-04-26 14:27:29 -04:00
dannyrb c4c94883cc Publish a new version when merged to react branch 2019-04-26 14:24:59 -04:00
Danny Brown 0e59e02991 Merge pull request #401 from dannyrb/chore/repository-cleanup
chore(ci): CircleCI and VS Code preferences
2019-04-26 13:14:15 -04:00
dannyrb ea4ea9469e This is the default value for this config field 2019-04-26 13:03:32 -04:00
dannyrb 739101ded4 No package name collission 2019-04-26 13:03:22 -04:00
dannyrb 6038546f52 prep --> preBuild 2019-04-26 13:00:24 -04:00
dannyrb 5b15d39871 Shuffle some test coverage setting around 2019-04-26 12:58:43 -04:00
dannyrb e9952a7511 Try removing max-old-space-size now that we've removed bad directories 2019-04-26 12:50:13 -04:00
dannyrb c571003210 Exclude a few more locations 2019-04-26 12:46:35 -04:00
dannyrb 1b2cfb9fda Don't commit coverage reports 2019-04-26 12:37:34 -04:00
dannyrb f8850f6522 Don't collect coverage from extensions 2019-04-26 12:37:06 -04:00
dannyrb 28d1fde2ed Attempt to set NODE_OPTIONS before running tests 2019-04-26 12:33:17 -04:00
dannyrb 8a0915c49f Update scripts to match CI memory limits 2019-04-26 12:25:23 -04:00
Danny Brown 3279ab37c1 Merge branch 'react' into react-documentation 2019-04-26 11:52:21 -04:00
dannyrb 895f13257a Use exact version of ohif-core 2019-04-26 11:50:07 -04:00
dannyrb 64090634e7 No need to track our junit output 2019-04-26 10:12:33 -04:00
biharck accb4fd2bb wip to fix jquery-hotkeys 2019-04-26 11:00:27 -03:00
dannyrb eb562f730f Sanity test only for now 2019-04-25 16:52:44 -04:00
dannyrb ae92d07a5a Stubbed sanity test 2019-04-25 16:51:07 -04:00
dannyrb ebefd8b758 Add CircleCI test config 2019-04-25 16:50:57 -04:00
dannyrb 62de1a3721 Add codecov dev dependency 2019-04-25 16:50:44 -04:00
dannyrb 256ba0d42f Configure jest -- fix a few common issues 2019-04-25 16:44:41 -04:00
dannyrb ad8b554f04 add semantic-release dev dependency 2019-04-25 15:46:48 -04:00
Danny Brown 53cd72d43e Merge branch 'react' into chore/repository-cleanup 2019-04-25 15:38:42 -04:00
dannyrb e0fa2bacd7 Autoformat 2019-04-25 15:35:11 -04:00
dannyrb 2a49f490ff CircleCI config to attempt build on PR 2019-04-25 15:34:59 -04:00
dannyrb 0d43c4cc81 Autoformat 2019-04-25 15:31:01 -04:00
dannyrb 357ad6af3c Default prettier settings 2019-04-25 15:30:46 -04:00
dannyrb fbb9207b93 VS Code default settings 2019-04-25 15:29:42 -04:00
Danny Brown a8dfc3d7ce Merge pull request #400 from dannyrb/chore/repository-cleanup
Chore/repository cleanup
2019-04-25 15:17:38 -04:00
dannyrb b37fd03add Better description 2019-04-25 15:12:10 -04:00
dannyrb 98cf09835a Point out Viewer architecture 2019-04-25 15:06:09 -04:00
dannyrb 22e32bc1c7 Simpler getting started; but not advanced scenarios 2019-04-25 15:03:31 -04:00
dannyrb 393a3f37d3 MISC urls 2019-04-25 15:01:18 -04:00
dannyrb 8ee610565a Why updates 2019-04-25 15:01:01 -04:00
dannyrb daaa42456a Getting Started 2019-04-25 15:00:48 -04:00
dannyrb 8c75599bd2 Contributing 2019-04-25 15:00:29 -04:00
dannyrb 8c0138d183 Issues 2019-04-25 15:00:17 -04:00
dannyrb cdf12511ea Badges 2019-04-25 14:59:59 -04:00
dannyrb 95dd18dc90 Read the docs 2019-04-25 14:01:35 -04:00
dannyrb 300886f315 The why 2019-04-25 14:01:19 -04:00
biharck 4821705d68 fixing typo 2019-04-25 14:47:26 -03:00
biharck 09e0601a4f adding dcm4che docker-compose file 2019-04-25 14:21:28 -03:00
Danny Brown 415ade4a97 Merge pull request #398 from dannyrb/chore/update-docs-outline
chore(docs): System architecture
2019-04-25 00:01:25 -04:00
dannyrb d45ac5db0a "Goal" of architecture page 2019-04-24 23:54:26 -04:00
dannyrb d062efdc82 Stubbed common question 2019-04-24 23:39:56 -04:00
dannyrb a78fa6e3b3 Component library 2019-04-24 23:39:45 -04:00
dannyrb e96a331d91 Diagram explanation 2019-04-24 23:25:43 -04:00
dannyrb e188180a4a Remaining architecture menu items 2019-04-24 23:16:36 -04:00
dannyrb 2b67f906ea Extensions 2019-04-24 23:16:24 -04:00
dannyrb 98df7d5989 Common questions 2019-04-24 23:16:14 -04:00
dannyrb 320c3b0d67 Updated primary nav 2019-04-24 22:31:05 -04:00
dannyrb e533f6f0e8 Configuration placeholder 2019-04-24 22:30:51 -04:00
dannyrb 8ce7c04fa3 Business logic 2019-04-24 22:30:35 -04:00
dannyrb cf93a1eb06 Overview 2019-04-24 22:30:18 -04:00
biharck 8a4b334840 fixing generateStaticSite 2019-04-24 22:55:08 -03:00
biharck eb15358563 adding orthanc to the readme file 2019-04-24 22:27:33 -03:00
biharck 0ab6b73440 fixing cors issue 2019-04-24 22:23:06 -03:00
dannyrb 9c7ed9f4bf Add starting architecture docs 2019-04-24 15:41:23 -04:00
dannyrb 7865d39fbb Add diagram to source 2019-04-24 15:27:57 -04:00
biharck 803dbc54bc temporary change to emulate orthanc 2019-04-24 15:20:23 -03:00
biharck 79b974179e Adding proxy for orthanc 2019-04-24 15:14:26 -03:00
biharck 06e754834f adding docker-compose readme and fixing docker-compose context 2019-04-24 09:16:08 -03:00
biharck af9ee3664f skiping deps folder 2019-04-24 09:01:37 -03:00
biharck 2fa8567cd9 Replacing query-string to querystring 2019-04-24 09:00:36 -03:00
biharck a4dfcaa0dc adding docker file 2019-04-24 09:00:03 -03:00
Danny Brown d1f7edf423 Merge pull request #393 from dannyrb/chore/update-docs-outline
Chore/update docs outline
2019-04-23 09:49:15 -04:00
biharck 667da2a4b8 Merge branch 'react' into react-documentation 2019-04-19 18:06:45 -03:00
biharck 99d1fd7e26 adding dockerignore file 2019-04-19 18:05:38 -03:00
dannyrb 17af9be266 Don't build example for this PR 2019-04-19 14:43:25 -04:00
dannyrb 6608af5daa Merge branch 'react' of github.com:OHIF/Viewers into chore/update-docs-outline 2019-04-19 14:23:51 -04:00
Danny Brown e4d9a56910 Merge pull request #389 from dannyrb/react
Restore react example at /demo
2019-04-19 14:22:48 -04:00
dannyrb 551c2d7e23 Merge branch 'react' of github.com:OHIF/Viewers into react
# Conflicts:
#	docs/latest/_book/package.json
2019-04-19 14:21:13 -04:00
dannyrb 46b737fcbb Skinny advanced description 2019-04-19 14:05:31 -04:00
dannyrb 46337e7f8b Merge branch 'chore/update-docs-outline' of github.com:dannyrb/Viewers into chore/update-docs-outline
# Conflicts:
#	docs/latest/SUMMARY.md
2019-04-19 13:41:16 -04:00
dannyrb 0705565c02 Update high level summary of extensions 2019-04-19 12:46:05 -04:00
dannyrb c1b7e5a7fc Remove unused proptypes 2019-04-19 12:42:38 -04:00
dannyrb 37368ca30e Formatting 2019-04-19 12:42:26 -04:00
dannyrb dcc5f53396 Add toolbar section 2019-04-19 12:41:25 -04:00
dannyrb 41d6e0d7ca Docs for Viewport Module 2019-04-19 10:45:40 -04:00
dannyrb 29abad4a24 Remove unused import 2019-04-19 10:45:22 -04:00
dannyrb 38b31984ae Quick readme on how to write/dev docs 2019-04-19 10:45:09 -04:00
dannyrb 312e300ffc Update sidebar for extensions links 2019-04-19 10:44:46 -04:00
biharck 04443494b0 adding orthanc configuration file and into the readme file 2019-04-19 09:58:30 -03:00
dannyrb 1c08604fbb Remove custom extensions as it's just an overview of what an extension is 2019-04-19 01:10:41 -04:00
dannyrb d6c0305a3e Play with new menu ordering 2019-04-19 01:04:02 -04:00
dannyrb 13496911bc Shift to advanced folder 2019-04-19 00:59:46 -04:00
dannyrb 464cb02b5e Rough notes, extensions 2019-04-18 17:01:35 -04:00
dannyrb 2f4b3cd6b7 OHIF maintained extensions 2019-04-18 15:52:36 -04:00
biharck 3cdd62a94f adding orthanc details 2019-04-18 10:07:46 -03:00
biharck 68c6913375 adding gifs and adding more details on getting started 2019-04-18 09:29:27 -03:00
dannyrb f5ee00ab98 Adding architecture page 2019-04-17 16:45:17 -04:00
dannyrb 7975e442e2 This menu item is generated by the versions plugin; no need to add it here 2019-04-17 16:43:17 -04:00
dannyrb 4f2a6a3c70 Silly little bat script to make dev on windows less painful 2019-04-17 16:42:56 -04:00
dannyrb 38c01d46a1 Don't track gitbook output 2019-04-17 16:41:59 -04:00
dannyrb 2b49b7fc4d _book are built assets. We don't need them in source control 2019-04-17 16:41:24 -04:00
dannyrb 19fa0bca18 Remove unused npm scripts 2019-04-17 16:20:38 -04:00
dannyrb 10913933cd Remove unused update-docs script 2019-04-17 16:19:39 -04:00
dannyrb 0174872427 Re-add demo/example 2019-04-17 15:43:04 -04:00
Danny Brown 891118afa0 Merge pull request #387 from dannyrb/chore/update-docs-outline
chore: restore docs
2019-04-17 14:43:35 -04:00
dannyrb 4941e271ed Temporarily disable demo deploy 2019-04-17 14:34:49 -04:00
dannyrb a1f9a04acc Updated lock 2019-04-17 14:34:34 -04:00
dannyrb 15cfe428df Remove unused deploys 2019-04-17 14:33:13 -04:00
dannyrb 605bd4f2bc Change expected react dir 2019-04-17 14:04:31 -04:00
dannyrb 8415120378 move CNAME file 2019-04-17 14:03:32 -04:00
dannyrb b8f38a200e remove lingering sha import 2019-04-16 16:57:29 -04:00
dannyrb 08d1faa3e7 Rollup config --> isContextConsumer 2019-04-16 16:56:43 -04:00
dannyrb 6a44da2d16 Use yarn run 2019-04-16 16:48:51 -04:00
dannyrb da77d15762 Be more explicit with our versions 2019-04-16 16:39:36 -04:00
dannyrb aae8925653 Kill travis 2019-04-16 16:39:13 -04:00
dannyrb f7a55ae382 Shift to prebuild 2019-04-16 16:36:20 -04:00
dannyrb 09291acbd5 Make sure version.js exists before we build 2019-04-16 16:34:52 -04:00
dannyrb a3c814339e Don't track package-lock 2019-04-16 16:34:38 -04:00
dannyrb f771b91a03 Add yarn.lock 2019-04-16 16:34:26 -04:00
dannyrb 822ee3143d Remove sha file creation (contained most recent commit hash) 2019-04-16 16:29:09 -04:00
dannyrb 2c3f71f0b0 Test commit 2019-04-16 16:17:56 -04:00
Danny Brown a9896b0135 Merge pull request #385 from dannyrb/react
💥 _explosion noises_
2019-04-16 16:05:37 -04:00
dannyrb c92539dae6 Another batch of meteor files 2019-04-16 13:42:54 -04:00
dannyrb b8e1a6e745 Discard meteor files 2019-04-16 13:34:10 -04:00
dannyrb c7539184aa Re-order dependencies 2019-04-16 12:19:14 -04:00
dannyrb 038d807d08 OS safe copy command 2019-04-16 12:15:40 -04:00
dannyrb 780f84af89 Re-add extensions as top level dir 2019-04-16 12:00:06 -04:00
dannyrb 77ec71a12a Preserve react dockerfile 2019-04-15 16:56:23 -04:00
dannyrb bd605b9752 More shifting 2019-04-15 16:55:51 -04:00
dannyrb f526d54786 Delete Yarn.lock for now 2019-04-15 16:45:37 -04:00
dannyrb 72cdebccf4 🧹🧹🧹 Don't mind me. Just moving things around 2019-04-15 16:44:36 -04:00
dannyrb 9a0d295ee6 Some more of this 🧨 2019-04-15 16:38:53 -04:00
dannyrb 7e68259edb 💥 _explosion noises_ 2019-04-15 16:35:19 -04:00
Gustavo André Lelis ca98e69a66 Merge pull request #383 from OHIF/bump-react-viewerbase
Bump react-viewerbase version to 0.2.17
2019-04-15 10:12:19 -03:00
Gustavo Lelis ba72350c9e fix(react-viewerbase): Fixing the package version instead of using latest minor 2019-04-15 10:07:28 -03:00
Gustavo Lelis 3077d18ace Bump react-viewerbase version to 0.2.17 2019-04-10 11:05:54 -03:00
Erik Ziegler cca67a3413 fix(ccc-example): Fix ccc localhost settings 2019-04-09 13:57:11 +02:00
Egor Lezhnin 46ed339579 fix(google-cloud): Update healthcare-api-adapter to use v1beta1 URLs (#379) 2019-04-08 13:10:29 +02:00
Erik Ziegler 9270fbf78d docs(google-cloud): Update Google Cloud docs to clarify instructions 2019-04-05 17:37:45 +02:00
Dusan Zelembaba 9d83a1e6cc Restrict Scope for Cloud Healthcare API Example Config (#378)
The integration only needs read access to projects not all cloud
platform resources.
2019-04-05 16:13:14 +02:00
Erik Ziegler 55510a27be chore(version): Bump ohif-cornerstone-extension to 0.0.28 2019-04-04 13:13:32 +02:00
Erik Ziegler 5558da0641 fix(babel) Update ohif-cornerstone-extension with react-cornerstone-viewport fix 2019-04-04 13:11:57 +02:00
Erik Ziegler 6c9270b3de fix(dockerfile): Fix jessie-updates issues with node:8.10.0-slim image 2019-04-04 09:02:15 +02:00
Erik Ziegler 6586c03af1 feat(google-cloud): Add docs for how to use OHIF against Google Cloud Healthcare 2019-04-03 18:17:38 +02:00
Gustavo André Lelis 768db26bfc Merge pull request #375 from OHIF/viewport-custom-props
feat(vewportOverlay): Update the extension to be able to pass custom …
2019-03-29 14:53:28 -03:00
Gustavo Lelis 59c06c886b feat(react-cornerstone-viewport): Bump version 2019-03-29 13:51:16 -03:00
Gustavo Lelis c05c666d72 feat(viewportOverlay): Adding default value on customProps 2019-03-28 17:19:20 -03:00
Gustavo Lelis aacd0c68b8 feat(vewportOverlay): Update the extension to be able to pass custom properties to the viewport 2019-03-27 04:34:23 -03:00
Erik Ziegler 416b4ade38 feat(google-cloud): Add an example configuration for Google Cloud Healthcare (you may need to enable the Cloud Resource Manager API) 2019-03-22 16:47:22 +01:00
Erik Ziegler c0549967c6 fix(toolbar): Remove unnecessary Presentation State button 2019-03-22 16:43:39 +01:00
Erik Ziegler 46828dc5ce fix(google-cloud): Minor cleanup to prevent Google Cloud packages from being added unnecessarily 2019-03-22 16:43:31 +01:00
Egor Lezhnin 9486522552 feat(google-cloud): Add support for Google Cloud Healthcare API DICOM Store Switch (#325)
* NOTASK: PoC for loading data from Healthcare API

* NOTASK: PoC for loading data from Healthcare API fix

* Add sample dialog for loading test dicom-picker

* Fix incorrect promise resolving

* NOTASK: PoC for loading dicom store

* Add web-components as git submodules. (Probably will be changed later)

* Add rough dicomStore picker

* Add dataset selector

* NOTASK: QIDO metadata first draft

* NOTASK: Not Implemented error for color images

* NOTASK: clean-up

* Dicom files uploader intermediate version

* NOTASK: Accept header

* NOTASK: docker configs

* NOTASK: fix

* NOTASK: howTo

* Add draft of DICOM uploader

* Add missing files

* Fix error with missing clientId

* Update submodule

* NOTASK: HowTo

* NOTASK: config for dev

* NOTASK: new docker file

* clean-up

* Update GCP web-components

* Add integration with async web components

* Fix errors in nginx.conf

* Structured reports views basic implementation

* NOTASK: qido -> wado

* NOTASK: config fix

* NOTASK: dirty copy-paste implementation

* Add "Change dicom store" button.
Add an ability to clear date.
Fix bug, when OAuth dosn't work if URL is not /

* Fix studylist filtering

* Fix dockerfile

* NOTASK: meteor update

* NOTASK: fix of package structure

* NOTASK: merge fix

* improvements

Move check for now SR into SR modal
Use simple button to open SR modal
Remove button styling
cleanup

* copy SR data retrieval to wado

* make search of SR simpler

* Codestyle fix

* NOTASK: palette color error message

* Fix date filter.
Fix server settings on first loading.
Add SR and PS buttons

* NOTASK: PS is now hidden by default

* NOTASK: dirty solution

* NOTASK:  new wadoimage lib version

* Fix PS and SR buttons

* Make modal dialogs vertically centered

* Update web components. Quick UI fixes

* Add missing files to the previous commit

* NOTASK:  show-hide for PS

* NOTASK:  show-hide for PS

* NOTASK:  fix of min-max PixelValue bug

* Add "sign out" functionality for Google OAuth. Update web-components.

* intermediate commit

* Add demo signin page

* Beautifying demo sign in page

* NOTASK:  merge

* NOTASK:  clean-up

* Use npm for getting healthcare-api-adapter instead of git submodule.

* NOTASK:  clean-up

* meteor update

* clean-up

* clean-up

* Clean up code

* Update healthcare-api-adapter version. Add location to dicom store path. Fix buttons style.

* Downgrade meteor and packages to master version. Use meteor-build-client-fixed2
2019-03-22 16:42:26 +01:00
Erik Ziegler c1173e3232 Update cornerstone-extension for dcmjs 0.3.8 2019-03-08 19:38:05 +01:00
Erik Ziegler 773e0c32bb Bump ohif-viewer to 0.0.19 2019-03-08 19:08:08 +01:00
Erik Ziegler 2eb87ee8c1 Update cornerstone-extension and dcmjs to fix segmentation display in Cornerstone 2019-03-08 19:06:02 +01:00
Evren Ozkan c31e21fe18 Bump ohif-cornerstone-extension to 0.0.23 2019-03-08 09:01:13 -05:00
Evren Ozkan ae4fa90e99 fix(ohif-cornerstone-extension): Handle undefined sopClassUids
Bump ohif-cornerstone-extension to 0.0.22
2019-03-08 08:55:59 -05:00
Erik Ziegler 19eeb07f0b Bump ohif-cornerstone-extension to 0.0.21 2019-03-08 13:35:46 +01:00
Erik Ziegler 9fd19e0ae6 docs(page-width): Widen pages 2019-03-04 14:04:21 +01:00
Erik Ziegler 0bbb7476eb docs(versions): Fix version selector 2019-03-04 13:45:57 +01:00
Erik Ziegler 6658623f1f docs(readme): Start adding documentation for React version 2019-03-04 13:43:39 +01:00
Erik Ziegler ec51cb7a6c feat(vtk): Enable vtk extension (still very much work-in-progress) 2019-03-01 10:55:52 +01:00
Erik Ziegler 932fcea446 Bump ohif-viewer to 0.0.18 2019-02-28 11:42:49 +01:00
Erik Ziegler f111411046 feat(extensions): Toolbar module depends on plugin in active viewport 2019-02-28 11:18:01 +01:00
Evren Ozkan 2fdc1687d0 fix(dependencies): Bump cornerstone-tools to 3.2.3 and ohif-core to 0.3.3 2019-02-26 13:24:24 -05:00
Evren Ozkan 5fb95cc8a3 fix(measurement-table): Set measurementId in table data 2019-02-26 13:22:56 -05:00
Erik Ziegler 6f8b9ae593 Update ohif-cornerstone-extension to support props to specify which image should be displayed in a stack 2019-02-21 16:51:52 +01:00
Gustavo Lelis 656b64e9db Update viewerbase, bump ohif-viewer to 0.0.17 2019-02-21 08:10:25 +01:00
Erik Ziegler d00be8dbd7 Bump ohif-viewer to 0.0.16 2019-02-18 15:09:49 +01:00
Erik Ziegler 113c20c346 feat(measurement-table): Improve measurement table support. Still missing labelling 2019-02-18 15:00:37 +01:00
Erik Ziegler becdfee1ed Switch ohif-core submodule to a proper commit hash 2019-02-18 10:58:32 +01:00
Erik Ziegler 9de327fa12 Add base tag if not present to fix issues with Icons referenced in SVG 2019-02-18 10:53:36 +01:00
Erik Ziegler 422414ca74 Update gitmodules to use https instead of ssh 2019-02-18 10:49:13 +01:00
Gustavo Lelis e6480594ae fix(cine): Fix tool icon 2019-02-18 10:47:07 +01:00
maltempi 126babe4ee Removing not used studyCount field 2019-02-15 23:45:59 -02:00
maltempi d4e865860e Using momentjs method to subtract days 2019-02-15 23:43:10 -02:00
maltempi 94ab9ff791 Formating studyDate field 2019-02-15 23:36:33 -02:00
maltempi 04dc3724ff Adding study list sorting 2019-02-15 23:14:05 -02:00
maltempi 9e7d14d4c8 Fixing pagination 2019-02-15 22:43:21 -02:00
maltempi 993b50e3bc merging master into study-list-filter 2019-02-15 09:18:55 -02:00
Erik Ziegler eb710c3494 Update react-viewerbase to fix studylist redirect issues 2019-02-14 15:21:52 +01:00
Erik Ziegler 26932612f8 Fix static site icon URL 2019-02-14 15:07:35 +01:00
Erik Ziegler 6b6237cdf6 Update ohif-viewer to use latest ohif-core (0.0.15) 2019-02-13 14:27:46 +01:00
Erik Ziegler dd26fcb1cd Update ohif-cornerstone-extension to use latest ohif-core 2019-02-13 14:18:36 +01:00
Erik Ziegler b0a5d07498 Update ohif-viewer's dependencies (0.0.14) 2019-02-13 10:15:54 +01:00
Erik Ziegler 977ede54e8 Add overflow:hidden to FlexboxLayout 2019-02-12 18:21:40 +01:00
Erik Ziegler b763178852 Update ohif-cornerstone-extension with latest react-cornerstone-viewport 2019-02-12 18:19:09 +01:00
Erik Ziegler bca45d0646 Update ohif-core to include latest measurements code 2019-02-12 09:59:21 +01:00
Gustavo Lelis 6dd9a6ac49 feat(measurementTable): Adding prop-types as peerDependency as we have is also as peer on react-cornerstone-viewport 2019-02-12 03:32:23 -02:00
Gustavo Lelis cb32c299e2 feat(measurementTable): Adding convert measurements into table data function into our reducer 2019-02-12 03:30:25 -02:00
Gustavo Lelis 7c20343912 feat(measurementTable): Providing studyInstanceUids for ConnectedViewer component 2019-02-12 03:30:25 -02:00
Gustavo Lelis de853c9221 feat(measurementTable): Fixing tool naming to match with tools instanciated in the viewer 2019-02-12 03:30:24 -02:00
Gustavo Lelis 0ff4e43315 feat(measurementTable): Add dispatch functions for measurements updates. 2019-02-12 03:30:23 -02:00
Evren Ozkan 13c8599f06 feat(react-measurements): Integrate Timepoint API and Measurement API from ohif-core package - WIP 2019-02-12 02:34:37 -02:00
Evren Ozkan 84e2f86a76 feat(react-measurements): Add measurement table - WIP 2019-02-12 02:34:35 -02:00
Erik Ziegler e1f1d9b630 Fix passing children into cornerstone-extension 2019-02-11 22:33:53 +01:00
Erik Ziegler 6a3c257cb3 Fixes for passing configuration / children into the cornerstone-extension 2019-02-11 22:28:24 +01:00
Erik Ziegler 3e5147f4ba Bump react-cornerstone-viewport dependency (ohif-cornerstone-extension 0.0.11) 2019-02-11 09:32:34 +01:00
Erik Ziegler 23e5ffe07c Prevent bad NPM publications 2019-02-10 23:04:25 +01:00
Erik Ziegler 72cfccd55e ohif-viewer 0.0.11 (bug fix) 2019-02-10 22:45:27 +01:00
Erik Ziegler 72a4ae11fa Fix for passing availableTools inside Cornerstone extension 2019-02-10 22:43:06 +01:00
Erik Ziegler b413527371 Demonstrate tool configuration via App redux settings (using Freehand tool) (ohif-cornerstone-extension: 0.0.8, ohif-viewer 0.0.10) 2019-02-10 22:28:42 +01:00
Erik Ziegler e235980040 Fix update issues when component props change (ohif-cornerstone-extension: 0.0.7, ohif-viewer 0.0.9) 2019-02-10 21:35:09 +01:00
Erik Ziegler 2868b08a4a Improvements for dicom-html-extension 2019-02-10 17:11:15 +01:00
Erik Ziegler af20f5f3e3 Add rudimentary DICOM-SR to HTML extension 2019-02-08 19:13:12 +01:00
Erik Ziegler 4d08af5beb Update ohif-viewer version because of a bad publish 2019-02-08 14:23:30 +01:00
Erik Ziegler b2298556ca Fix issues with ohif-cornerstone-extension 2019-02-08 14:02:42 +01:00
Erik Ziegler 1783351f57 Update dicomweb-client to 0.4.2 2019-02-08 09:41:12 +01:00
Erik Ziegler 85a88744d5 Fix duplicate eventData variable in measurementHandlers 2019-02-08 09:30:42 +01:00
maltempi db6d372dc4 Adding date filtering 2019-02-07 22:56:25 -02:00
Erik Ziegler a32a5f3612 Update to ohif-core 0.2.7 2019-02-07 19:18:01 +01:00
Erik Ziegler 61ee07a8f8 Bump ohif-cornerstone-extension to 0.0.5 2019-02-07 17:57:11 +01:00
Erik Ziegler 35fd77573b Allow OHIFCornerstoneExtension to have children passed into it upon declaration 2019-02-07 17:56:23 +01:00
Erik Ziegler 3d1eff07ad Move ExtensionManager and localStorage into ohif-core 2019-02-07 15:10:39 +01:00
Biharck Araujo 14c344ecb5 adding style to fix viewport maximization (#349) 2019-02-07 11:14:16 +01:00
Erik Ziegler 5bb64fd925 Switch index.html to the dcmjs dicomweb server 2019-02-06 17:16:27 +01:00
Erik Ziegler 5b29d082ca Comment out some stuff that I didn't mean to push yet 2019-02-06 14:58:06 +01:00
Erik Ziegler 22202141b8 Moved the Cornerstone viewport code to an extension. Tons of changes to rollup and package.json files to make everything play nicely 2019-02-06 14:46:06 +01:00
James Petts 9c97d6229e fix typo: e -> eventData. 2019-02-05 12:18:31 +00:00
Erik Ziegler 9a0f417eec Update ohif-core to fix microscopy (again) 2019-02-04 17:22:04 +01:00
Erik Ziegler e3d26f2181 Fix performance issues with Microscopy extension 2019-02-04 16:45:49 +01:00
Erik Ziegler bf8f737fec Begin adding DICOM Segmentation handling to Cornerstone plugin via dcmjs 2019-02-03 22:18:08 +01:00
Sandra b93a677ef3 Refactor extensions interface (#344)
* Added container class for plugins that care for registration of submodules

* Added extensions manager that cares for adding modules to store

* Make extensions require less knowledge of internal extension management

* Reformatting

* Update generateStaticSite to use ohif-viewer, remove old OHIFViewer-react folder

* Add yarn.lock so Netlify knows to use Yarn

* Fix for copying static site folder

* Try to fix netlify build which is stuck uploading

* Try to fix static site deployment

* Try to fix static site deployment again

* Try to fix static site deployment one more time

* Extracted pdf plugin into external package

* Removed some unused dependencies

* Published pdf extension to npm registry

* Added external microscopy extension (work in progress)

* Extraction of microscopy plugin working now

* Added microscopy extension npm package to package.json

* Increase ohif-core version

* update yarn.lock

* Fix error in readme

* Fix authentication error in pdf plugin

* Remove readme, update packages, add redirect for netlify

* netlify test

* netlify test 2

* netlify test 2, forgot to add new redirects file

* Use public dicom server for demo

* Another netlify try

* Another netlify try 2

* Another netlify try 3

* Another netlify try 4
2019-02-02 11:10:56 +00:00
Biharck Araujo c228d94690 Merge pull request #345 from biharck/master
including skip configuration if the push comes from external PR
2019-01-31 13:44:12 -02:00
biharck 386eeddcd9 including skip configuration if the push comes from external PR 2019-01-31 11:23:35 -02:00
Erik Ziegler af68db0c09 Update ohif-core to make user preferences work 2019-01-31 08:05:06 +00:00
Thiago Maltempi 8a3056b9f0 [React] Integrating UserPreferences + Hotkeys (#332)
* User Preferences - basic integration

* wip user prefs

* Creating ConnectedHeader

* Removing old UserPreferences

* Reverting studylistwithdata

* Initial hotkeys handler migration

* Setting keys after save

* Getting hotkeys from redux

* Adding windowslevel preset listeners

* Refactoring - moving hotkeys setup to ohif-core-hotkeysUtil

* Using hotkeysUtil method on userPreferences save

* Using context in the user preferences

* Adding redux store into localstorage

* Hotkeys - Fixing onResetToDefaults

* Mmoving from OHIFViewer-react to ohif-viewer
2019-01-31 07:55:05 +00:00
Erik Ziegler fbcc4fcf40 Add dockerfile for ohif-viewer package 2019-01-30 18:37:01 +00:00
Siegel 0804bc1177 Added minimal documentation 2019-01-30 17:07:39 +00:00
Erik Ziegler 1e898fd5c8 Update ohif-core, fix rollup usage with dicomweb-client and dicom-microscopy-viewer 2019-01-30 16:21:38 +00:00
Erik Ziegler 03c7274812 Add DicomMicroscopy plugin 2019-01-30 11:24:34 +00:00
Sandra 84c949f2e6 Merge OHIFViewer-react into Packages-react\ohif-viewer (#342)
* Added public directory and debug run code in index.js

* Different entry points for development and publish

* Add port to start debug script

* Merge in progress

* Merge in progress

* Merge in progress

* Merged last components
2019-01-30 09:34:55 +00:00
Erik Ziegler 80df33f4fd Fixes for Layout button and CINE, move some stuff into Cornerstone plugin 2019-01-28 10:23:24 +00:00
Erik Ziegler 2b2583bfd7 Fix versions 2019-01-25 16:55:33 +01:00
Erik Ziegler 4d0822e47e Add DICOM PDF plugin 2019-01-25 16:54:10 +01:00
Erik Ziegler fe68719eca Fix config issue 2019-01-24 14:20:54 +01:00
Erik Ziegler 0501d4ce2a Remove dist folder from ohif-viewer 2019-01-24 14:04:48 +01:00
Erik Ziegler 8f96553ee2 Add ability to easily change the standalone viewer logo (0.0.6) 2019-01-24 14:00:01 +01:00
Erik Ziegler d961a73b6c Fixes for Standalone OpenID Connect usage 2019-01-24 10:22:40 +01:00
James Petts 4579543bde Fixed memory leak by properly triggering remove. (#339) 2019-01-23 09:38:18 +01:00
Erik Ziegler 9cc063430a Fix ROOT_URL for Standalone Viewer 2019-01-17 17:44:26 +01:00
Erik Ziegler 59b7c951df Try to fix standalone routing 2019-01-17 17:40:42 +01:00
Erik Ziegler 2082d46a57 Fix standalone example 2019-01-17 17:22:15 +01:00
Erik Ziegler 6e91df26ee Add ohif-viewer package to work on sharing components across viewers and test the standalone viewer via script tag 2019-01-17 17:00:21 +01:00
Zaid Safadi fa4b768214 Update references to meteor-build-client-fixed to use the new version and supporting legacy browsers. (#334) 2019-01-16 10:35:52 +01:00
Erik Ziegler 6e291a18b8 feat(CINE): Add basic CINE dialog support 2019-01-14 10:00:30 +01:00
Erik Ziegler 3954c32441 Integrate Study Prefetcher and Study Loading Listener 2019-01-09 09:19:15 +01:00
Erik Ziegler 8962f957d8 Updated to latest react-cornerstone-viewport 2019-01-08 11:38:47 +01:00
Erik Ziegler 65c7bbdcc3 Attempt to fix missing cornerstoneMath issue 2019-01-08 11:17:30 +01:00
Erik Ziegler 6096dc6892 Disable the user requirement for demo purposes 2019-01-08 10:55:56 +01:00
Erik Ziegler d45d2ee8f4 ESLint fixes and cleanup 2019-01-08 10:48:57 +01:00
Erik Ziegler ecbaddfa93 Fix viewport resizing behaviour on layout change 2019-01-07 21:18:52 +01:00
Erik Ziegler 9e7314e4a5 Add OAuth support 2019-01-07 19:17:10 +01:00
Erik Ziegler 0cbf15c46e Styling fixes, add some other tools 2019-01-07 14:00:54 +01:00
Erik Ziegler 9f74adcb44 Fixes for drag/drop 2019-01-07 13:11:38 +01:00
Erik Ziegler 2f0eb5d71e Fix static site generation script after homepage change 2019-01-07 11:30:02 +01:00
Erik Ziegler cb43d379b1 Try to fix missing icons 2019-01-07 11:18:59 +01:00
Erik Ziegler 2b8dfa4468 Update to include layout control 2019-01-06 21:59:25 +01:00
Rodrigo Antinarelli b84fd28dc2 Fix Page scroll (#329)
* add .DS_Store to .gitignore

* create header component

* add icons image file to the project

* add new theme variables

* insert header component into Viewer

* add web fonts

* create dropdown component

* update header styles

* import dropdown with custom list into header component

* reindent index

* Update index.html

* create json file for header menu settings

* import header menu

* header prefix

* remove overflow hidden -- it's hiding Dropdown menu

* header fixes

* header css adjustments

* add Back to Viewer btn

* icon

* fix viewer height to avoid page scroll

* fix

* comment right sidebar's wrapper div -- it's not being rendered yet

* Update ViewerMain.js

* Update ToolbarRow.js

* Update ViewerMain.js
2019-01-05 16:14:12 +01:00
Erik Ziegler c1b8642e4d fix(commit-hook): Add husky to package.json 2019-01-02 17:35:00 +01:00
Erik Ziegler 36dde7842b Switch to react-dnd via react-viewerbase to fix drag/drop of display sets 2019-01-02 17:33:20 +01:00
Rodrigo Antinarelli 2569d0e79b Header component (#328)
* add .DS_Store to .gitignore

* create header component

* add icons image file to the project

* add new theme variables

* insert header component into Viewer

* add web fonts

* create dropdown component

* update header styles

* import dropdown with custom list into header component

* reindent index

* Update index.html

* create json file for header menu settings

* import header menu

* header prefix

* remove overflow hidden -- it's hiding Dropdown menu

* header fixes

* header css adjustments

* add Back to Viewer btn
2019-01-01 12:23:17 +01:00
Erik Ziegler 301ff1adc7 Start fixing viewports 2018-12-31 14:54:22 +01:00
Erik Ziegler 18792da43d Fix toolbar buttons connection to redux 2018-12-31 13:52:37 +01:00
Erik Ziegler 5d6aad488e Update viewer with Study List and routing to Viewer 2018-12-31 13:26:38 +01:00
Rodrigo Antinarelli 4fbc208b41 (React) - Header and Dropdown component (#327)
* add .DS_Store to .gitignore

* create header component

* add icons image file to the project

* add new theme variables

* insert header component into Viewer

* add web fonts

* create dropdown component

* update header styles

* import dropdown with custom list into header component

* reindent index

* Update index.html

* create json file for header menu settings

* import header menu

* header prefix
2018-12-29 15:02:18 +01:00
Ubaldo Mattos e1d846e3f7 Create environment-installations.md 2018-12-24 19:09:28 -02:00
Ubaldo Mattos 995e8220cf Delete teste.md 2018-12-24 11:28:44 -02:00
Ubaldo Mattos ecc659e066 Create teste.md 2018-12-24 11:28:09 -02:00
Ubaldo Mattos 7724230ed7 Update README.MD 2018-12-23 13:10:11 -02:00
Ubaldo Mattos 5ed8d80c92 Update README.md 2018-12-23 13:09:47 -02:00
Ubaldo Mattos 718ad120c5 Update README.md 2018-12-23 13:09:03 -02:00
Ubaldo Mattos 5eb5ee1aa8 Standalone Installation Instructions for Windows Server 2016 2018-12-23 13:07:08 -02:00
Ubaldo Mattos a3dc19ed44 Standalone Installation Instructions for Windows 2016 2018-12-23 13:06:33 -02:00
Ubaldo Mattos 9c0bf74a8c Standalone installation Instructions
Standalone installation Instructions for Windows Server 2016
2018-12-23 13:05:51 -02:00
Ubaldo Mattos 36cb273c3c Rename Standalone-Installation-Instructions-For-Windows-Server-2016.md to Standalone-Installation-Instructions.md 2018-12-23 13:04:07 -02:00
Ubaldo Mattos cb9cf192e9 Create Standalone-Installation-Instructions-For-Windows-Server-2016.md 2018-12-23 13:02:24 -02:00
Ubaldo Mattos 8abcf9aed4 Create README.md 2018-12-23 13:00:46 -02:00
Ubaldo Mattos 0b048cfa72 Create README.md 2018-12-23 12:38:05 -02:00
Ubaldo Mattos eb5b41fcbc Create README.MD 2018-12-23 12:37:30 -02:00
Ubaldo Mattos 72be17fd88 Delete README.md 2018-12-23 12:37:02 -02:00
Ubaldo Mattos c0baa7e10b Delete README.md 2018-12-23 12:36:52 -02:00
Ubaldo Mattos d5944c64bb Create README.md 2018-12-23 12:34:50 -02:00
Ubaldo Mattos 124b6f3cbe Update README.md 2018-12-23 12:33:50 -02:00
Ubaldo Mattos 093bd11bc5 Create README.md 2018-12-23 12:33:00 -02:00
Ubaldo Mattos 1b8e0622f7 Delete README.md 2018-12-23 12:32:24 -02:00
Ubaldo Mattos 35db826556 Delete Windows Server 2016.md 2018-12-23 12:32:11 -02:00
Ubaldo Mattos 9dde9697e6 Create README.md 2018-12-23 12:30:30 -02:00
Ubaldo Mattos 23f93cb85f Update Windows Server 2016.md 2018-12-23 12:28:01 -02:00
Ubaldo Mattos f67b94f4a8 Update Windows Server 2016.md 2018-12-23 12:26:29 -02:00
Ubaldo Mattos 1a3c6c5b75 Update Windows Server 2016.md 2018-12-23 12:25:42 -02:00
Ubaldo Mattos e7b500b04e Update Windows Server 2016.md 2018-12-23 12:24:49 -02:00
Ubaldo Mattos e2d38e6637 Update Windows Server 2016.md 2018-12-23 12:23:51 -02:00
Ubaldo Mattos a1ed687ec7 Update Windows Server 2016.md 2018-12-23 12:22:38 -02:00
Ubaldo Mattos 83e6e890a4 Update Windows Server 2016.md 2018-12-23 12:22:09 -02:00
Ubaldo Mattos 9799778873 Update Windows Server 2016.md 2018-12-23 12:21:58 -02:00
Ubaldo Mattos f3a4bbc63a Update Windows Server 2016.md 2018-12-23 12:19:40 -02:00
Ubaldo Mattos 0038a1d9e1 Update Windows Server 2016.md 2018-12-23 12:18:40 -02:00
Ubaldo Mattos 07c6d1f5bd Update Windows Server 2016.md 2018-12-23 12:18:22 -02:00
Ubaldo Mattos e16da38bc1 Update Windows Server 2016.md 2018-12-23 12:18:06 -02:00
Ubaldo Mattos 0258774875 Update Windows Server 2016.md 2018-12-23 12:12:16 -02:00
Ubaldo Mattos 2194779f87 Update Windows Server 2016.md 2018-12-23 11:56:07 -02:00
Ubaldo Mattos 9f94525996 Update Windows Server 2016.md 2018-12-23 11:55:00 -02:00
Ubaldo Mattos 433c81f451 Update Windows Server 2016.md 2018-12-23 11:54:33 -02:00
Ubaldo Mattos 2f600c4535 Update Windows Server 2016.md 2018-12-23 11:54:04 -02:00
Ubaldo Mattos 833e84fd76 Update Windows Server 2016.md 2018-12-23 11:53:32 -02:00
Ubaldo Mattos 3b280ab41c Update Windows Server 2016.md 2018-12-23 10:07:29 -02:00
Ubaldo Mattos a6e07bf4a1 Update Windows Server 2016.md 2018-12-23 10:06:24 -02:00
Ubaldo Mattos 4df497ff78 Update Windows Server 2016.md 2018-12-23 10:05:24 -02:00
Ubaldo Mattos 4fce726d86 Update Windows Server 2016.md 2018-12-23 10:04:17 -02:00
Ubaldo Mattos e42ae11936 Update Windows Server 2016.md 2018-12-23 09:54:43 -02:00
Ubaldo Mattos 7e72ea591b Update Windows Server 2016.md 2018-12-23 09:48:18 -02:00
Ubaldo Mattos 09dc550f4c Create Windows Server 2016.md
This file is the first of a serie with information about how to install OHIF viewer on client machines.
2018-12-23 09:45:00 -02:00
Evren Ozkan e508a59ee3 fix(thumbnails): Prevent caching for thumbnail images by using canvas element (thanks @jasonklotzer) 2018-12-19 10:29:45 -05:00
Erik Ziegler 470b57de8e Fixes for opening/closing sidebar 2018-12-19 14:53:03 +01:00
Erik Ziegler c08d12cb36 Start adding toggle to open/close sidebar 2018-12-19 09:41:30 +01:00
Erik Ziegler 4174018149 Start adding toolbar back in 2018-12-18 14:15:55 +01:00
Erik Ziegler e84197b19d fix(styles): Switch from stylus to CSS for app-level styles. Add CSS variables for theme 2018-12-18 13:33:26 +01:00
Zaid Safadi 7643a384b4 Update cornerstone libs (wado) to latest and fix Incorrect ultrasound measurement #319 (#323) 2018-12-17 23:33:30 +01:00
Erik Ziegler 09ac6ee347 fix base URL usage for web workers 2018-12-17 23:08:26 +01:00
Erik Ziegler 4a3a0aa394 Add StandaloneViewer-style routes 2018-12-17 22:50:58 +01:00
Erik Ziegler cd6f177bca Fix sed usage to expand variables 2018-12-17 22:21:30 +01:00
Erik Ziegler 8d9e4191ed Forgot to add homepage to package.json 2018-12-17 21:27:38 +01:00
Erik Ziegler fa0bcfe31f Use homepage to fix static site deploy preview 2018-12-17 21:23:50 +01:00
Erik Ziegler fbfc3f6163 Netlify doesn't have yarn, so switch it to npm 2018-12-17 20:53:59 +01:00
Erik Ziegler f2ca5629c8 Fix static site generation 2018-12-17 20:45:30 +01:00
Erik Ziegler 11d36a4e6b Switch to react app with dependencies on ohif-core and react-viewerbase 2018-12-17 17:23:03 +01:00
Erik Ziegler fc5bd73c1e add new viewer folder 2018-12-14 15:23:48 +01:00
Erik Ziegler d541c23117 wip, very broken as I moved stuff to ohif-core 2018-12-14 14:38:36 +01:00
Erik Ziegler 7b66dec163 continue consolidating packages, converting various pieces to react 2018-12-13 23:24:39 +01:00
Erik Ziegler 5f30f7bd35 reorganize packages, start converting overall app to react (very broken at the moment) 2018-12-12 18:06:25 +01:00
nicolasvandooren 947a5f470d feat(standalone-viewer): Add authorization header (#322) 2018-12-12 18:01:46 +01:00
Erik Ziegler 024fe1a448 chore(ohif-studylist): Remove OHIF.studylist.classes deprecation notice 2018-12-12 09:11:59 +01:00
Erik Ziegler 6511198c90 Package.js updates 2018-12-12 09:11:49 +01:00
Erik Ziegler 184c959037 Move ohif:hotkeys into ohif:core 2018-12-12 09:11:29 +01:00
Erik Ziegler 1abd0e6f9d Move ohif:commands into ohif:core 2018-12-12 09:11:05 +01:00
Erik Ziegler da36c33c70 Move ohif:metadata into ohif:core 2018-12-12 09:11:00 +01:00
Erik Ziegler 700fff763c Move ohif:header into ohif:core 2018-12-12 09:10:53 +01:00
Erik Ziegler 54a0f447b5 Move ohif:log into ohif:core 2018-12-12 09:10:46 +01:00
Erik Ziegler 054e37dfb7 WIP reorganization 2018-12-12 09:10:39 +01:00
Erik Ziegler 6706dfe634 fixes to transition OHIF Viewer to redux 2018-12-11 22:15:33 +01:00
Erik Ziegler 5dec28ba8c chore(cleanup): Remove persistent-session package 2018-12-11 22:15:14 +01:00
Erik Ziegler c3565cd687 Begin switching study browser use react-viewerbase 2018-12-11 12:30:21 +01:00
Erik Ziegler 83a7271cd1 fix(viewport): Fix active viewport by connecting to redux 2018-12-06 16:12:23 +01:00
Erik Ziegler 943efb44e5 refactor(viewport): Switch to react-cornerstone-viewport 2018-12-06 13:10:46 +01:00
Erik Ziegler a42cc5f1a1 fix(meteor): Fix broken autoupdate for Meteor 1.8 2018-12-04 00:36:51 +01:00
Erik Ziegler aa170e9a89 wip on react transition 10 2018-12-03 23:56:29 +01:00
Erik Ziegler 33fad2f317 wip on react transition 9 2018-12-03 23:28:23 +01:00
Erik Ziegler 71b49e6766 wip on react transition 8 2018-12-03 18:11:39 +01:00
Erik Ziegler 9ae5dd25ce wip on react transition 7 2018-12-02 08:23:43 +01:00
Erik Ziegler 765abfd572 wip on react transition 6 2018-12-01 12:27:36 -05:00
Erik Ziegler 1ace720566 wip on react transition 5 2018-12-01 08:52:03 -05:00
Erik Ziegler 5568490819 wip on react transition 4 2018-11-30 16:12:04 -05:00
Erik Ziegler 895fb01a02 wip on react transition 3 2018-11-30 15:23:59 -05:00
Erik Ziegler f821ea2b80 wip on react transition 2 2018-11-30 14:28:15 -05:00
Erik Ziegler 7425c2beb8 wip on react transition 2018-11-30 11:40:16 -05:00
Evren Ozkan 5a4deedda8 fix(reference-lines): Update reference lines for the latest changes in cornerstone tools 2018-11-29 16:02:33 -05:00
Evren Ozkan c7565c7037 fix(download-tool): Update download tool for the latest changes in cornerstone tools 2018-11-29 13:02:54 -05:00
Evren Ozkan 94406edf21 fix(tool-manager): Set tools passive except the active tools 2018-11-29 13:02:12 -05:00
Evren Ozkan 635c8b9119 fix(tool-manager): Instantiate cornerstone tools by element 2018-11-29 12:47:23 -05:00
Evren Ozkan e947f1fad0 fix(tool-context-menu): Show context-menu on tool right-click 2018-11-28 15:04:24 -05:00
Evren Ozkan 4ee352592c fix(tool-style): Add default tool configuration 2018-11-28 14:21:48 -05:00
Evren Ozkan b91542f4cf Update to cornerstone-tools 3.0.0-b.1421 2018-11-28 13:37:03 -05:00
Evren Ozkan ea6dea4549 fix(tool-manager): Set all tools passive by default in order to render external data if exists 2018-11-15 10:55:38 -05:00
James Petts 5019f539ee Fix keyscroll. 2018-11-12 11:18:48 +00:00
James Petts edfbad10af Merge branch 'cornerstone-tools-next' of https://github.com/OHIF/Viewers into cornerstone-tools-next 2018-11-12 11:11:51 +00:00
Evren Ozkan 8b6f17c103 Integrate Cornerstone Tools v3 (#235) - WIP
- fix(stack-scroll): Activate mouse wheel and scrollbar stack scroll
- fix(touch): Activate pinch zoom, two-finger pan and three (or more) finger stack scroll
2018-11-09 13:24:48 -05:00
Evren Ozkan 4cf68adec7 Integrate Cornerstone Tools v3 (#235) - WIP
fix(mouse-buttons): Support for assigning tools to mouse buttons (left, right, middle)
fix(tool-naming): Fix tool naming issues
2018-11-09 13:24:48 -05:00
James Petts 6fedea1653 Working with latest cornerstone and cornerstoneTools versions. 2018-11-09 13:24:48 -05:00
James Petts 05085b452d Kind of working, updated cornerstone-core lib. 2018-11-09 13:24:47 -05:00
James Petts d8b60ec38a WIP newest cTools v3. 2018-11-09 13:24:47 -05:00
Gustavo Lelis 9048dcbc1e Fixing tool naming changes 2018-11-09 13:24:47 -05:00
Gustavo Lelis 875640073e Refator in ToolManager 2018-11-09 13:24:47 -05:00
Gustavo Lelis c30cdbe625 - Fixed by setting all tools to passive mode after instantiate then all
- Fixed the default tool that was not being set correctly.
- Fixed some callouts done by Erik into my PR related with keeping old tool list
2018-11-09 13:24:47 -05:00
Gustavo Lelis 51c5c76eb9 Fix some naming and updating to the correct cornerstone-tools version 2018-11-09 13:24:44 -05:00
Gustavo Lelis 500ca1ec07 Updating to latest version of tools and remving typo 2018-11-09 13:23:43 -05:00
Gustavo Lelis fee6b240a4 Adding cornerstoneTools init() 2018-11-09 13:23:43 -05:00
Gustavo Lelis e5e027f716 WIP: Introducing cornerstoneTools v3 into Viewers 2018-11-09 13:23:43 -05:00
Evren Ozkan a4b8f2c5ed fix(user-preferences): Fix the issues with saving/retrieving user preferences in OHIFViewer 2018-11-09 13:22:14 -05:00
Evren Ozkan 5017fd13af fix(hot-keys): Set the correct context name to enable hot keys based on the current page (#308) 2018-11-09 13:14:03 -05:00
Evren Ozkan 99041bebde fix(study-list): Use offset and limit in the dicomweb queries used to search studies with next/prev pagination in study list (#290) 2018-11-08 17:43:26 -05:00
Evren Ozkan 0a5feb9a0d Integrate Cornerstone Tools v3 (#235) - WIP
- fix(stack-scroll): Activate mouse wheel and scrollbar stack scroll
- fix(touch): Activate pinch zoom, two-finger pan and three (or more) finger stack scroll
2018-10-29 10:58:53 -04:00
Evren Ozkan 3f2968b05f Integrate Cornerstone Tools v3 (#235) - WIP
fix(mouse-buttons): Support for assigning tools to mouse buttons (left, right, middle)
fix(tool-naming): Fix tool naming issues
2018-10-26 23:45:19 -04:00
Evren Ozkan 6ad7586d25 Fix the issues with modality filter in study list 2018-10-25 19:28:54 -04:00
Evren Ozkan 68e2619199 Bump cornerstone-core to 2.2.7 and cornerstone-tools to 2.4.0 2018-10-25 14:36:45 -04:00
James Petts 7bf059ad05 Working with latest cornerstone and cornerstoneTools versions. 2018-10-23 16:53:24 +02:00
James Petts 1887df2dc5 Kind of working, updated cornerstone-core lib. 2018-10-23 13:21:21 +02:00
James Petts 548dddfc93 WIP newest cTools v3. 2018-10-23 11:31:59 +02:00
Erik Ziegler 2c6bd1ef6f chore(dcmjs): Move DICOM-SR creation / parsing logic from OHIF to dcmjs (#293) 2018-10-18 08:53:47 +02:00
João Vinagre fa73fedb73 fix(study-list): Change convertStringToStudyDate to use moment to fix study date issues 2018-10-04 11:40:48 +02:00
Erik Ziegler 89d97a7a3a chore(dicomweb-client): Switch to dicomweb-client.js to push logic out of OHIF 2018-10-04 11:40:48 +02:00
Erik Ziegler 45c5867663 chore(openid-connect): Update versionsFrom to 1.7 for ohif-user-oidc 2018-10-01 14:15:29 +02:00
Erik Ziegler a70f1547a3 fix(lesion-tracker): Fix routing and package building issues with Lesion Tracker 2018-10-01 14:15:29 +02:00
Erik Ziegler 539c8af98b fix(lesion-tracker): Fix package import issues with ohif-user-meteor-accounts 2018-10-01 14:15:29 +02:00
Erik Ziegler 84c68f4084 fix(lesion-tracker): Fix improper use of loadStudy in longitudinalViewportOverlay (closes #194) 2018-10-01 14:15:29 +02:00
Erik Ziegler 19731a2223 chore(research-use-warning): Add Investigational Use Only warning to Lesion Tracker 2018-10-01 14:15:29 +02:00
Erik Ziegler 89c6252429 chore(lesion-tracker): Remove unused gagarin / nightwatch tests 2018-10-01 14:15:29 +02:00
Erik Ziegler 3c4c8c26f9 fix(lesion-tracker): Stop trying to load study with non-existent studyInstanceUid 2018-10-01 14:15:29 +02:00
Bruno Alves de Faria 1e97a3eff7 chore(enabled-element-hooks): Allow hooks to run when viewport is enabled 2018-10-01 14:15:29 +02:00
Bruno Alves de Faria d28ec41893 feat(stack-scroll-linking): Add flag to disable automatic stack scroll linking when jumping to a lesion 2018-10-01 14:15:29 +02:00
Bruno Alves de Faria 1c1ad7de42 chore(error-handling): Log errors in OHIF.ui.handleError 2018-10-01 14:15:29 +02:00
Bruno Alves de Faria 63a9fdab62 fix(save-measurements): Prevent users from saving by hotkey when saving is disabled 2018-10-01 14:15:29 +02:00
Bruno Alves de Faria 303c94c3b0 feat(bidirectional) Allow text callouts to be linked to the short axis of the bidirectional tool (#44) 2018-10-01 14:15:29 +02:00
Bruno Alves de Faria b8d619390a feat(bidirectional-tool): Reset rotation behaviour when long/short axes invert 2018-10-01 14:15:29 +02:00
Erik Ziegler 822dc448c9 fix(select2): Stop adding inputSelect placeholder for multiple=true input selects 2018-10-01 14:15:29 +02:00
Aysel Afsar 2ad86af12e feat(popover): Add click-to-dismiss popover template to core 2018-10-01 14:15:29 +02:00
Bruno Alves de Faria b64c9878af fix(hanging-protocols): Fail rule matching if a required rule fails 2018-10-01 14:15:29 +02:00
Bruno Alves de Faria b6eecf8c8f chore(hotkeys): Change hotkey command names for Next / Previous Image Viewport 2018-10-01 14:15:29 +02:00
Bruno Alves de Faria eae9df2c3f fix(hotkeys): Correct grammar for W/L shortcut switch confirmation 2018-10-01 14:15:29 +02:00
Bruno Alves de Faria 02ec88655a chore(bidirectional-tool): Clean up longest/shortest diameters calculation 2018-10-01 14:15:29 +02:00
Bruno Alves de Faria d834c751a9 chore(measurements): Fix namespace on some events in ohif:measurements package 2018-10-01 14:15:29 +02:00
Erik Ziegler c4c20abb23 fix(measurements): Add missing toolType for temp measurements 2018-10-01 14:15:29 +02:00
Bruno Alves de Faria 0434853b72 fix(download-screenshot): Fix Download Screenshot issues on IE11 2018-10-01 14:15:29 +02:00
Bruno Alves de Faria 3a20f1ecaf fix(bidirectional-tool): Prevent NaN values when using bidirectional tool. 2018-10-01 14:15:29 +02:00
Erik Ziegler 938ce69ce0 chore(validate.js): Fix old reference to validatejs package 2018-09-28 15:25:29 +02:00
Bruno Alves de Faria ea34f2db83 chore(validate.js): Replace validatejs Meteor package with direct npm import 2018-09-28 15:09:01 +02:00
Rick Frank 4e17ac39eb feat(plugins) allow for styles dynamic loading. 2018-09-28 09:14:09 +02:00
Gustavo André Lelis 53f71aa34c chore(dimse): Migrate from Meteor to NPM package for DIMSE calls (#269) 2018-09-28 08:54:03 +02:00
Gustavo Lelis e7042cafef Fixing tool naming changes 2018-09-24 02:38:24 -03:00
Gustavo Lelis 01739fa70a Refator in ToolManager 2018-09-24 02:38:24 -03:00
Gustavo Lelis 5865f542f8 - Fixed by setting all tools to passive mode after instantiate then all
- Fixed the default tool that was not being set correctly.
- Fixed some callouts done by Erik into my PR related with keeping old tool list
2018-09-24 02:38:24 -03:00
Gustavo Lelis 44cb47f64a Fix some naming and updating to the correct cornerstone-tools version 2018-09-24 02:38:23 -03:00
Gustavo Lelis e3bf0f2852 Updating to latest version of tools and remving typo 2018-09-24 02:38:09 -03:00
Gustavo Lelis ad459a2515 Adding cornerstoneTools init() 2018-09-24 02:37:46 -03:00
Gustavo Lelis da5b755637 WIP: Introducing cornerstoneTools v3 into Viewers 2018-09-24 02:37:46 -03:00
Erik Ziegler 18a3bcba30 fix(client-only): Fix client-only Server & CurrentServer usage (#276) 2018-09-21 20:02:29 +02:00
Erik Ziegler c4b1086097 fix(servers): Fix subscription issue for production deployment. Added clientOnly option for static site deployments of OHIF Viewer 2018-09-21 15:16:28 +02:00
Erik Ziegler 18bcf83805 feat(openid-connect): Switch to generic OIDC Client library instead of using Keycloak.js (#273) 2018-09-19 14:50:12 +02:00
Erik Ziegler 2f05ed5961 chore(lesion-tracker): Remove unused Reviewer code for study list 2018-09-17 11:45:57 +02:00
Erik Ziegler 6468203cf3 chore(hangingProtocols): Remove unused HangingProtocol testData 2018-09-17 11:40:30 +02:00
Gustavo André Lelis 2f1a2273a4 BugFix(#183): Avoid adding focus on a viewport that is already activated (#265) 2018-09-06 15:28:26 -03:00
Gustavo André Lelis 2493802dea Adding ArrowAnnotate and simpleAngle into measurement-table (#263) 2018-09-06 08:07:54 -03:00
Gustavo André Lelis 7a47b58729 fix(IE11) Bump version of dcmJS into cornerstone package - fixes #246 (#260) 2018-08-23 18:49:43 -03:00
Erik Ziegler 26562e1525 fix(standaloneViewer): Fix frameOfReferenceUID in JSON files for StandaloneViewer 2018-08-22 15:38:25 +02:00
Erik Ziegler a0bbaf3eec fix(standaloneViewer): Add transactionId back to test data JSON files for StandaloneViewer 2018-08-22 14:46:52 +02:00
Erik Ziegler aa412071e5 fix(standaloneViewer): Fix test data JSON files for StandaloneViewer 2018-08-22 10:51:28 +02:00
Erik Ziegler 2288b9f32d fix(docker/travis): Fix accidental push from PR branches to ohif/viewer:latest (closes #247) (#248) 2018-08-17 15:56:26 +02:00
Erik Ziegler 4b5ea5c13a chore(research-use-warning): Add Investigational Use Only warning 2018-08-16 09:03:13 +02:00
Erik Ziegler a2b6566ee9 fix(DIMSE): Switch from new Buffer() to Buffer.alloc() (CWE-665) 2018-08-13 14:28:36 +02:00
Erik Ziegler c09b54924e fix(plugins): Fix timing issues with loadScript 2018-08-09 19:00:29 +02:00
Erik Ziegler b8eadd6d61 fix(studyPrefetcher): Avoid errors in Study Prefetcher when settings are undefined 2018-08-09 15:50:36 +02:00
Erik Ziegler 69ea0f488c fix(standaloneViewer): Fix missing displaySets when studies are loaded in Standalone Viewer 2018-08-09 13:00:22 +02:00
Erik Ziegler 640aec42dd fix(plugins): Fix issues with loadScript not executing onload callback 2018-08-09 11:31:06 +02:00
Erik Ziegler ddbe8b38aa feat(plugins): Add pluginData to viewportData so that plugins can manage their own data 2018-08-09 10:45:58 +02:00
Erik Ziegler f6b82baae3 feat(plugins): Add moduleURLs in addition to scriptURLs 2018-08-08 19:28:56 +02:00
Erik Ziegler 53cd12a16a feat(plugins): Add initial version of ViewportPlugin class (#242)
* Add initial version of ViewportPlugin class
* Move entrypoints from OHIFPlugin to OHIF.plugins
* Add URL route to DICOMWeb server for Standalone Viewer
2018-08-08 18:00:53 +02:00
Gustavo André Lelis ced47c765f feat(export-CSV) Export measurements to CSV file (#209) 2018-07-31 15:02:47 +02:00
Gustavo André Lelis 26b14f1dab feat(STOW-RS) Save DICOM Structured Reports from Measurement Table back to archive (#236)
* Small refactor into Table Class setting events as static object into class

* feature(STOW-SR) : Initial changes to stow when we have Server.

* Improvements into requests and small fix into style

* Small fix for jumpToRow without refheshing page

* Handling STOW-SR once we don't have server

* feature(STOW-SR) Refactor

* Merge request with makeRequest and delete old file

* Expose wadoproxy to client and update measurement-table to start using wadoproxy.getServerUrl

* Move WADOProxy.getServerUrl to Measurement-table package. Fix querystring issue.

* Remove proxy:enabled in favour of requestOptions.requestFromBrowser

* Bcrypt 2.0.0 to fix Travis
2018-07-31 15:01:26 +02:00
Erik Ziegler 13e4dc25e1 Revert "merge plugin code to master"
This reverts commit e896724f70.
2018-07-27 13:51:38 +02:00
Rick Frank e896724f70 merge plugin code to master 2018-07-26 16:13:33 -04:00
Erik Ziegler ea23ec84e0 fix(ohif-viewer): Fix incorrect variable in ohifViewer.js header setup 2018-07-24 11:36:09 +02:00
Steve Pieper c22bd8e63e Merge pull request #237 from OHIF/pieper-patch-1
Add netlify documentation to contributing.md
2018-07-23 18:50:42 -04:00
Steve Pieper 701277f2c0 doc: add netlify doc link to contribing.md
Also update to use this pull request as the referenced example.
2018-07-23 18:34:37 -04:00
Steve Pieper eea430f2e8 Add netlify documentation to contributing.md
This is a sort of meta-PR in the sense that it's a real PR to add this documentation, and also a test to confirm that this PR will trigger a netlify build of the documentation that can be used to confirm that the link will work.
2018-07-23 17:29:22 -04:00
Erik Ziegler aca17e4d38 feat(netlify) Add static site deployment from Netlify (add /viewer to the deploy preview URL) (#232) 2018-07-23 10:19:52 +02:00
Gustavo André Lelis d94f0eec16 feat(measurement-table) Display support for measurements from DICOM Structured Reports (#225) 2018-07-20 12:40:09 +02:00
Erik Ziegler e9832f62f7 fix(orthanc-dicomweb-config): Switch default thumbnailRendering to wadouri 2018-07-19 18:31:43 +02:00
Erik Ziegler 6cc8048aed fix(wadoproxy): Update server-timing header to latest specification 2018-07-19 18:28:18 +02:00
Erik Ziegler 885dd9da2d fix(dicomweb) Fix basic authentication for DICOMWeb requests 2018-07-19 16:08:06 +02:00
Erik Ziegler 33755f7b8b feat(keycloak) Optional Keycloak integration via OpenId Connect (OIDC) for Identity and Access Management (#227) 2018-07-19 13:57:23 +02:00
Erik Ziegler 03d0798459 fix(routing): Switch from iron:router to clinical:router so we respect ROOT_URL (#115) 2018-07-18 12:44:27 +02:00
Erik Ziegler ebe0a40f3e feat(WADO) Allow WADO / QIDO requests to originate from client (#222) 2018-07-17 13:03:36 +02:00
Erik Ziegler 92408d4c86 feat(plugins) Add first pass OHIFPlugin class for experimentation 2018-07-17 10:05:22 +02:00
frmdstryr 7849699a0d Fix importStudies dialog when import fails (#223)
If an import happens to fail the dialog promise never resolves. 

This is because `numberOfStudiesFailed` is incremented on error but `numberOfStudiesImported` is not, so the branch  to resolve or reject is never taken.
2018-07-13 15:38:15 +02:00
Erik Ziegler 37ef5dc3df chore(cleanup) Remove remoteGetValue function which is unused 2018-07-13 10:20:36 +02:00
Erik Ziegler 30ed1911fb chore(cleanup) Remove OrthancRemote service which is not being used 2018-07-13 10:19:20 +02:00
Erik Ziegler f2c509b6af chore(cleanup) Remove Reviewers collection which is not being used 2018-07-13 10:15:10 +02:00
Erik Ziegler 9780c67c4f feat(IHEInvokeImageDisplay) Added IHE Invoke Image Display routes (thanks @jonasscherer) 2018-07-13 09:52:38 +02:00
Erik Ziegler 941d36bd05 fix(docker) Switch default config to use WADO-URI 2018-07-12 16:15:29 +02:00
Erik Ziegler c8f242d5f5 fix(studylist) Fix duplicate studies in studylist, add min width for study date temporarily 2018-07-12 15:22:11 +02:00
Erik Ziegler 4279396f9f fix(merge) Fixes after merging various changes 2018-07-12 15:22:07 +02:00
Bruno Alves de Faria 589be952b7 fix(inputSelect) Improving inputSelect component usability (#26) 2018-07-12 14:20:11 +02:00
Bruno Alves de Faria e474fdff2c feat(thumbnails) Use cornerstone.renderToCanvas for Series Thumbnails 2018-07-12 14:20:10 +02:00
Erik Ziegler 5373963176 fix(toolVisibility) Update Cornerstone libraries to support tool visibility switching. Update custom tools with visible flag support 2018-07-12 14:20:10 +02:00
Erik Ziegler c296cbb823 fix(quickSwitch) Remove Show Additional Timepoints from Quick Switch (#30) 2018-07-12 14:20:10 +02:00
Erik Ziegler ec7dc7ca5a fix(windowLevelPresets) Apply W/L from Image by default when displaying a new image, unless a Custom W/L or W/L Preset has been applied. 2018-07-12 14:20:10 +02:00
Bruno Alves de Faria 25646e3192 fix(resizing) Fixing handleResize on viewer loading 2018-07-12 14:20:10 +02:00
Bruno Alves de Faria ec9c0d444d fix(bootstrap) Include Bootstrap manually to avoid reported XSS vulnerability (#43) 2018-07-12 14:20:10 +02:00
Erik Ziegler 68925fad12 fix(lesionTable) Fix padding for New Non-Targets name 2018-07-12 14:20:10 +02:00
Bruno Alves de Faria 06fff20be3 fix(interaction) Preventing series navigation while interacting with tools 2018-07-12 14:20:10 +02:00
Evren Ozkan a5f426cf61 fix(toolColors) Set limegreen for active tool color 2018-07-12 14:20:10 +02:00
Erik Ziegler 99c65bb017 chore(scalebars) Switch to Scale Overlay tool from Cornerstone Tools 2018-07-12 14:20:10 +02:00
Aysel Afsar 664b78f42c fix(lesionTable) Remove plus icon from measurements header 2018-07-12 14:20:10 +02:00
Aysel Afsar 6d9e9696df fix(windowLevelPresets) Add a space between SoftTissue words 2018-07-12 14:20:10 +02:00
Aysel Afsar 271d73d627 fix(styling) Change background color of save confirmation dialog 2018-07-12 14:20:10 +02:00
Aysel Afsar 0c7edbe22e fix(keyboardShortcuts) Fix the issue with Reset to Defaults for Keyboard Shortcuts. Fix typo for resetDefaults 2018-07-12 14:20:10 +02:00
Aysel Afsar e1cd01828a fix(studylist-rowsPerPage) Fix the width of rows per page select list 2018-07-12 14:20:10 +02:00
Bruno Alves de Faria e07118c7c4 fix(draggableDialogs) Improving draggable plugin 2018-07-12 14:20:06 +02:00
Aysel Afsar e6beb8036c fix(viewportOverlay) Move time point information to top center of image 2018-07-12 12:11:19 +02:00
Bruno Alves de Faria 50374038a3 fix(modals) Fixing DOM issues with modals 2018-07-12 12:11:14 +02:00
Erik Ziegler 2c790ff674 fix(studylist) Fix DICOM Patient Name formatting (#35) 2018-07-12 12:11:09 +02:00
Erik Ziegler 781f6039fa fix(routing) Stop defining Route in Meteor.startup 2018-07-12 12:11:05 +02:00
Erik Ziegler 3d0f9e8973 fix(downloadImage) Remove Image Quality section from Download Dialog. Use CornerstoneTools saveAs and remove duplicated code 2018-07-12 12:10:59 +02:00
Erik Ziegler 5b4550edb2 fix(protocolEngine) Stop adding Array.prototype.move, since it is interfering with other code 2018-07-12 12:10:49 +02:00
1748 changed files with 83303 additions and 86271 deletions

No files matched your search

+68
View File
@@ -0,0 +1,68 @@
{
"files": [
"README.md"
],
"imageSize": 100,
"commit": false,
"contributors": [
{
"login": "swederik",
"name": "Erik Ziegler",
"avatar_url": "https://avatars3.githubusercontent.com/u/607793?v=4",
"profile": "https://github.com/swederik",
"contributions": [
"code"
]
},
{
"login": "evren217",
"name": "Evren Ozkan",
"avatar_url": "https://avatars1.githubusercontent.com/u/4920551?v=4",
"profile": "https://github.com/evren217",
"contributions": [
"code"
]
},
{
"login": "galelis",
"name": "Gustavo André Lelis",
"avatar_url": "https://avatars3.githubusercontent.com/u/2378326?v=4",
"profile": "https://github.com/galelis",
"contributions": [
"code"
]
},
{
"login": "dannyrb",
"name": "Danny Brown",
"avatar_url": "https://avatars1.githubusercontent.com/u/5797588?v=4",
"profile": "http://dannyrb.com/",
"contributions": [
"code"
]
},
{
"login": "allcontributors",
"name": "allcontributors[bot]",
"avatar_url": "https://avatars3.githubusercontent.com/u/46843839?v=4",
"profile": "https://github.com/all-contributors/all-contributors-bot",
"contributions": [
"doc"
]
},
{
"login": "EsrefDurna",
"name": "Esref Durna",
"avatar_url": "https://avatars0.githubusercontent.com/u/1230575?v=4",
"profile": "https://www.linkedin.com/in/siliconvalleynextgeneration/",
"contributions": [
"question"
]
}
],
"contributorsPerLine": 7,
"projectName": "Viewers",
"projectOwner": "OHIF",
"repoType": "github",
"repoHost": "https://github.com"
}
+19
View File
@@ -0,0 +1,19 @@
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"ie": "11"
}
}
],
"@babel/preset-react"
],
"plugins": [
"@babel/plugin-proposal-class-properties",
"@babel/plugin-syntax-dynamic-import",
"@babel/plugin-transform-regenerator",
"@babel/plugin-transform-runtime"
]
}
+155
View File
@@ -0,0 +1,155 @@
version: 2
### ABOUT
#
# This configuration powers our Circleci.io integration
#
# Note:
# Netlify works independently from this configuration to
# create pull request previews and to update `https://docs.ohif.org`
###
defaults: &defaults
working_directory: ~/repo
docker:
- image: circleci/node:10.15.1
jobs:
build_and_test:
<<: *defaults
steps:
# Download and cache dependencies
- checkout
- restore_cache:
name: Restore Yarn Package Cache
keys:
# when lock file changes, use increasingly general patterns to restore cache
- yarn-packages-v1-{{ .Branch }}-{{ checksum "yarn.lock" }}
- yarn-packages-v1-{{ .Branch }}-
- yarn-packages-v1-
- run:
name: Install Dependencies
command: yarn install --frozen-lockfile
- save_cache:
name: Save Yarn Package Cache
paths:
- ~/.cache/yarn
key: yarn-packages-v1-{{ .Branch }}-{{ checksum "yarn.lock" }}
# Build & Test
- run: yarn build:package:ci
# https://www.viget.com/articles/using-junit-on-circleci-2-0-with-jest-and-eslint/
- run:
name: 'JavaScript Test Suite'
command: yarn test:ci
environment:
JEST_JUNIT_OUTPUT: 'reports/junit/js-test-results.xml'
# Store result
- store_test_results:
path: reports/junit
- store_artifacts:
path: reports/junit
# Persist :+1:
- persist_to_workspace:
root: ~/repo
paths: .
npm_publish:
<<: *defaults
steps:
- attach_workspace:
at: ~/repo
- run:
name: Avoid hosts unknown for github
command:
mkdir ~/.ssh/ && echo -e "Host github.com\n\tStrictHostKeyChecking
no\n" > ~/.ssh/config
# --no-ci argument is not ideal; however, semantic-rlease thinks we're
# attempting to run it from a `pr`, which is not the case
- run:
name: Publish using Semantic Release
command: npx semantic-release --debug
# Persist :+1:
- persist_to_workspace:
root: ~/repo
paths: .
docs_publish:
<<: *defaults
steps:
- attach_workspace:
at: ~/repo
- run:
name: Avoid hosts unknown for github
command:
mkdir ~/.ssh/ && echo -e "Host github.com\n\tStrictHostKeyChecking
no\n" > ~/.ssh/config
- run: git config --global user.email "gh-pages@localhost"
- run: git config --global user.name "npm gh-pages"
- run: yarn global add gh-pages
- run:
name: Generate Docs
command: yarn run staticDeploy
- run:
name: Publish Docs
command: yarn run docs:publish
docker_publish:
<<: *defaults
steps:
- attach_workspace:
at: ~/repo
- setup_remote_docker:
docker_layer_caching: true
- run:
name: Build and push Docker image
command: |
# This file will exist if a new version was published by
# our `semantic-release` command in the previous job
if [[ ! -e tmp/updated-version.txt ]]; then
exit 0
else
# Remove npm config
rm -f ./.npmrc
# Set our version number using vars
export IMAGE_VERSION=$(cat tmp/updated-version.txt)
export IMAGE_VERSION_FULL=v$IMAGE_VERSION.${CIRCLE_BUILD_NUM}
echo $IMAGE_VERSION
echo $IMAGE_VERSION_FULL
# Build our image, auth, and push
docker build --tag ohif/$IMAGE_NAME:$IMAGE_VERSION_FULL --tag ohif/$IMAGE_NAME:latest .
echo $DOCKER_PWD | docker login -u $DOCKER_LOGIN --password-stdin
docker push ohif/$IMAGE_NAME:$IMAGE_VERSION_FULL
docker push ohif/$IMAGE_NAME:latest
fi
workflows:
version: 2
# PULL REQUESTS
pull_requests:
jobs:
- build_and_test:
filters:
branches:
ignore:
- master
- feature/*
- hotfix/*
# MERGE TO MASTER
cut_release:
jobs:
- build_and_test:
filters:
branches:
only: master
- npm_publish:
requires:
- build_and_test
- docs_publish:
requires:
- build_and_test
- docker_publish:
requires:
- build_and_test
- npm_publish
+16 -17
View File
@@ -1,17 +1,16 @@
.idea/
.meteor/local
.meteor/meteorite
.meteor/dev_bundle
*/.meteor/dev_bundle
node_modules
.npm
npm-debug.log
Packages/active-entry/helloworld/
LesionTracker/tests/nightwatch/reports/
package-lock.json
docs/_book
docs/
img/
test/
LesionTracker/
StandaloneViewer/
# Output
dist/
# Dependencies
node_modules/
# Root
README.md
Dockerfile
# Misc. Config
.git
.DS_Store
.gitignore
.vscode
.circleci
+14
View File
@@ -0,0 +1,14 @@
##
# Environment: Default
#
# We're using this to set variables for development.
# Please feel free to delete or modify this file for your own setup.
# Be careful not to commit anything sensitive to source control.
#
PUBLIC_URL=/
#
# Most vars require REACT_APP_* naming
#
REACT_APP_CONFIG=config/default.js
+13
View File
@@ -0,0 +1,13 @@
##
# EXAMPLE
#
# Read more about .env files when using create-react-app here:
# https://facebook.github.io/create-react-app/docs/adding-custom-environment-variables#adding-development-environment-variables-in-env
#
PUBLIC_URL=/demo
#
# Most vars require REACT_APP_* naming
#
REACT_APP_CONFIG=config/netlify.js
-1
View File
@@ -1,4 +1,3 @@
config/**
docs/**
img/**
StandaloneViewer/**
+16
View File
@@ -0,0 +1,16 @@
{
"extends": [
"react-app",
"eslint:recommended",
"plugin:react/recommended"
],
"parser": "babel-eslint",
"env": {
"jest": true
},
"settings": {
"react": {
"version": "detect",
},
},
}
-16
View File
@@ -1,16 +0,0 @@
module.exports = {
'env': {
'browser': true,
'es6': true,
'jquery': true,
'node': true,
'mocha': true
},
'extends': 'eslint:recommended',
'parserOptions': {
'sourceType': 'module'
},
'rules': {
'no-undef': 'error',
}
};
+24 -8
View File
@@ -1,11 +1,27 @@
.idea/
.meteor/local
.meteor/meteorite
.meteor/dev_bundle
*/.meteor/dev_bundle
# Packages
node_modules
# Output
build
dist
docs/_book
src/version.js
junit.xml
coverage/
# YALC (for Erik)
.yalc
yalc.lock
# Logging, System files, misc.
.idea/
.npm
npm-debug.log
Packages/active-entry/helloworld/
LesionTracker/tests/nightwatch/reports/
docs/_book
package-lock.json
yarn-error.log
.DS_Store
# Common Example Data Directories
sampledata/
example/deps/
docker/dcm4che/dcm4che-arc
+9
View File
@@ -0,0 +1,9 @@
{
"trailingComma": "es5",
"printWidth": 80,
"proseWrap": "always",
"tabWidth": 2,
"semi": false,
"singleQuote": true,
"endOfLine": "lf"
}
+14
View File
@@ -0,0 +1,14 @@
{
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/npm",
"@semantic-release/github",
[
"@semantic-release/exec",
{
"publishCmd": "mkdir tmp && echo ${nextRelease.version} > tmp/updated-version.txt"
}
]
]
}
-123
View File
@@ -1,123 +0,0 @@
language: node_js
node_js:
- "lts/*"
services:
- docker
before_script:
- export PATH=$HOME/.meteor:$PATH
cache:
directories:
- ~/.meteor
- node_modules
- OHIFViewer/node_modules
env:
global:
- METEOR_PACKAGE_DIRS=../Packages
- secure: "ZhIMR4geQP/BXdXrQkcARPCSPnyry2aTgszo+Jg+lZfRHWil2FmAweCiWyOC/5rRxrYYSik/ZyEMAX54v9N9sNjYsPlA9UFqovMirEQhXCYmIG+DNBsU58zgnrDWQoolF1xD4f/IFtLjUGG9WQNR7SavHeL/2VmWK9Nis8TChnyTdmlL8IaWEeKjznseLqyVKZSMb490bG34I4ztdumaYHWWt01uhNFZ/XA048NVd/E8LhO7yLIqwtmCt7Cr1Z61TfSzgyajJaCiuTLvrNDU8W/f/j4wlhybGJruvvOH9qDPRRp2aw3surgAB33irZftYFgG1h/6NjjKeRrBvqocW9sZdAeXWcqw4xiNyi4AbbSGk5aPrFuYMswJWP0/i9MkSF5N0eRcFoWl/DvTeaG4bkzTQquT29pdYE/Ef3KXDgKevwUKH0OBU79v8VSLjIT9Tr0ps/FOvNXjeGHjI6FoqCkLt2XYgDMteltRC7rjtmxTGBRpQQFoRksa/11jwr6t5YNxYootzM11g8EFA/uX56aJHkTjZBpSzMsImDPsWjpqu/MTttVmdtq6iFEkA9NBwZYIZEJBmiy/wfNXhNgCe2lDuaSdK6MMF8PHXWIjvcW2/+h6u355ktr+LRXeolVuYDIAaN3SDSJBsDkJg4duYWuCeq8ptJ4bzeRjZtPchew=" # DOCKER_USER
- secure: "PrUMwM360a1KMLhfIPmx7qp9+Ry2cMDJpW4WspE28UQTrqcSZdhUYFCs5Q2DISZXrZWGI1/utHK+JYeqCAt3xOf3qRsLqupzJIPqzMPyb2AKtyR1JbJZGyBv7y4s6HMrXZ9pNfRBoR7hHFtiZfmTBo8avpMne8gBN1JGGXM0GTqbZwY6JGAG+vQ0Nt+DculhEraDAzFdNF5vBO+lg8wTmvh2qp+espa+4i9JzjTeRk8O09+33jkqRFugZtJOcgIi9iBvZjKUPedmFA1w/hU3lHLUuofi7tTmpAOyqaQyB8Grfj1JsgaCfbOZQs7kPHtsQ1Ai0zw2MbJtTKoA8kHcU9XWDU4Kxa1K1qXyp+ZdofTXYYnHkN4pgS+EU2it/OlKnpJV4I73JK28aF7A+fe8zheWkpJV8rFBiI04xXdILr+jxQKfdM4TOWos/XShp4bJru4VJuIfnveKuR+1EPIpuOhJ2jj4HB7g6AbIAbGsjICbFq98jSiXENeGaYmx1qIBSIlFn+lLJxp40fx/OsGKC0y5orfDgyUcPUkseckEk/H7zc90DGdCLCFmJVVgrKGWnfq8ifFI8GPVTomUVy41PLGv1LTCIYyrjM02mxLIEMIKrKboy4MSbaOidasaobjYFtwjABR3GLnUK5ETLANhO0LLC4Z4w6KFvARFfZ6JPec=" # DOCKER_PASS
- secure: "G5qjTBS6CuCCtueEqCRAEUhznycGz2kRXB7nChUK/ftKbAMW6F487sj8uujDEO0CXTv9aWnKyrPoXPnhlB5APQ5PtmC8F8DJEqWGW29J/oBv1giJq2K2Elcz6a0a7ys8pTgGKJyDT+mEvFF9boxVKI/eZQ+4ACI0EkGHBakpzey7Y1YSMsymtG6eM3ic1Fgrxna8FynzazKS0YdoE5Aj6yPDVpfj/7vSucz3wR3r2JxMtq95hiWKWYPdc/iir0dcDnedU+MF9aaAUv+ReHpM6FPScnan4mqOhrYKK5sBx27p0C/IxJhtaB4RVzU2F0kYLynK1vgUOBFc+9H/G2P+wl6TfO5dGjMmGU6kF2eWtTzRqT7JELRdqu9v/QGOlKpKmhmA3diGfkY0E2keEUyIRchHZAZKYQfLUhUObYcve2/4skmg9qhcxSMuh2qjkfTyFj/M4mcfkTZZWB9izgkHO2O3MxQm1d5DJDtoSfNQZOZiLjckyxmghWF3TEKNp3OhDOt+JikrDboZBts3F9+ocAVjLyg3upmWnlE6rFfkmVtWCXmI6Rto+laHtV/ng83Z3M4wL3VcvoOlPXLb0moqCGN4HGvpfolBqryFksGbUybaIqbQ7hQHhQuThzQ9UHq0AQN44rwzxEuKbxY7bTuyb4vSEAkrvjeLFbz4MSHQgno=" # AWS_ACCESS_KEY_ID
- secure: "ngqtUAXc8sR84CZTzOtRmg+Di/UFXCASV5bLHBmbgmXrvidIisHGW8O7TTx54ZU4UXlbY+Rg/8K6iIyy+uuCLhRcVRDW4sxacdQTNnoDPDNczqwrbBrOCLU7aW0imNBcIDqEvza+1fXsBrFV/iejtOFYVPn4l/yAb/j9MVo65hTGaKwQ4371lNMbRQp9p9DTEGGmkABo/EOtvbNR2H4qVgTuzeR8XdHC8GJUN0bujwQoK3EPTgkaMO6M7XevSNieO35opmy/Ip0GKYNTt4smKPQrUIokokwApCrjn2URdcGLoHENTTHtjLWMM0QMOV47qRBD+FeVaTUe0I4MB1toEZEIck+Vdy7PTCQ/f1HZtlI+bbDLlDPFwB/EMr7J1EKbudu7NnRopN6/zWupmDnL9VWxZy9boCDXCF47OxL1Kba9qqPYigiaS4vQEXygrceQgr+22axowtgTYYyhcsIbXQPq8COlLS/Ls/OgJMKIcQjMhTlKw01B/a08yZ0WxfVD9HJJbDA4EJiztOT7IZCyJvSv1mxJ8uI5hHC4TUBMWIKM6hVVZb0bjvtJjq7kFP9T4gCe/+OKxLIsSqWwY8AZoot6bY5lreZvb0epmyeM4fmf6qQxjIUviaGgj2o4eU7awDQzevwS8hNTsXPdFGItVUrjtKyLFHPkCMiZcTskSZo=" # AWS_SECRET_ACCESS_KEY
- secure: "TfbqhcBGGRbvmJ5KevU60dyCczRbiX7Pt1N36Bgy8Ozj6Cv79jC1K+AaB98j+Q1e0A7PaL7sbuOy7hIV/OqePhGEk0D2mowYj8/ORp14UXQ89FpIL7exUCXSwSPhCIwUaGdY4S5yT0DL1rkb5qeSS8L9KEEEVPvVY1F2vGE/lzzgS1MCLCdk7ajs+3c9HP9N4J2PjYRg3WFkgWmfGNitEjGApSJ91NIJW4Sw9pqLhweWqKO8sAbpsADlE+NhfoDd0kzDTkecxWzSf3siO6yfGKAeh3bf8WE4qZReuLXYDWL3XjJ3LTfK018P1J8Cx9PlMb3M+nHU0B3T6mC1t+XtLrUE/fr1LF89diyDCSRB+ZW2H/l8SNQNVIqgTrXzoBcwqGNeZOPJwd2qcq1vLDAkxgC5QFsoRfyxJmzNff70ESClSmBQy/mNd/pXQZ9JZRMoa097j4pXGZlLGarotiCYUdtlPSZmN/eMsIhLtvxNQ8ryk1ASij5sN7WOdg0r+gZcDAY8AwuuDpmktEu9pHd7iEVFw78DIJmD1N5OgKYdVT6o0WTJnVySBf/+luYK9J/rd6vwvlB4C2LLzhEkWlAGp6n7rl/1V18akM+HPVUPWuDRH69ZYWRPq4TIZwfEPTEG4jYizlTjkn55R+CNi3AWoxL2kr1Qv+zUJSruIvixWvc=" # GITHUB_TOKEN
jobs:
include:
- stage: build production docker image
before_script:
- export REPO=ohif/viewer
- export COMMIT=${TRAVIS_COMMIT::8}
- export BRANCH=$(if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then echo $TRAVIS_BRANCH; else echo $TRAVIS_PULL_REQUEST_BRANCH; fi)
- echo "TRAVIS_BRANCH=$TRAVIS_BRANCH, PR=$PR, BRANCH=$BRANCH"
- export TAG=`if [ "$TRAVIS_BRANCH" == "master" ]; then echo "latest"; else echo $TRAVIS_BRANCH ; fi`
- echo "TAG=$TAG, COMMIT=$COMMIT"
- docker pull $REPO:latest
- docker --version
script:
- docker build -t $REPO:$COMMIT . --cache-from $REPO:latest
after_success:
- docker tag $REPO:$COMMIT $REPO:$TAG
- docker tag $REPO:$COMMIT $REPO:travis-$TRAVIS_BUILD_NUMBER
- docker images
- docker login -u $DOCKER_USER -p $DOCKER_PASS
- docker push $REPO:$TAG
- docker push $REPO:travis-$TRAVIS_BUILD_NUMBER
- docker push $REPO:$COMMIT
- stage: build development docker image
before_script:
- export REPO=ohif/viewer-dev
- export COMMIT=${TRAVIS_COMMIT::8}
- export BRANCH=$(if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then echo $TRAVIS_BRANCH; else echo $TRAVIS_PULL_REQUEST_BRANCH; fi)
- echo "TRAVIS_BRANCH=$TRAVIS_BRANCH, PR=$PR, BRANCH=$BRANCH"
- export TAG=`if [ "$TRAVIS_BRANCH" == "master" ]; then echo "latest"; else echo $TRAVIS_BRANCH ; fi`
- echo "TAG=$TAG, COMMIT=$COMMIT"
- docker pull $REPO:latest
- docker --version
script:
- docker build -f development.Dockerfile -t $REPO:$COMMIT . --cache-from $REPO:latest
after_success:
- docker tag $REPO:$COMMIT $REPO:$TAG
- docker tag $REPO:$COMMIT $REPO:travis-$TRAVIS_BUILD_NUMBER
- docker images
- docker login -u $DOCKER_USER -p $DOCKER_PASS
- docker push $REPO:$TAG
- docker push $REPO:travis-$TRAVIS_BUILD_NUMBER
- docker push $REPO:$COMMIT
- stage: build standalone viewer
if: branch = master
before_script:
- export ROOT_URL=http://ohif-viewer.s3-website.eu-central-1.amazonaws.com
- export METEOR_PACKAGE_DIRS="../../Packages"
- cd StandaloneViewer
- mkdir buildDirectory
- cd StandaloneViewer
- npm install -g meteor-build-client-fixed@0.4.3
- meteor-build-client-fixed --version
- curl https://install.meteor.com | /bin/sh
- meteor npm install
script:
- meteor-build-client-fixed ~/standaloneViewerBuild -u $ROOT_URL
after_success:
- ls ~/standaloneViewerBuild
- ls /home/travis
- ls /home/travis/build
- ls /home/travis/build/Viewers/StandaloneViewer
deploy:
provider: s3
access_key_id: $AWS_ACCESS_KEY_ID
secret_access_key: $AWS_SECRET_ACCESS_KEY
bucket: ohif-viewer
region: eu-central-1
skip_cleanup: true
local_dir: /home/travis/standaloneViewerBuild
acl: public_read
on:
branch: master
- stage: build documentation
if: branch = master
before_script:
- cd docs
- rm -rf _book
- npm install
- npm install -g gitbook-cli
- gitbook install
script:
- gitbook build
after_success:
- cp assets/CNAME _book/CNAME
deploy:
provider: pages
skip-cleanup: true
local-dir: docs/_book
github-token: $GITHUB_TOKEN
keep-history: true
fqdn: docs.ohif.org
verbose: true
on:
branch: master
+8
View File
@@ -0,0 +1,8 @@
{
"recommendations": [
"esbenp.prettier-vscode",
"sysoev.language-stylus",
"dbaeumer.vscode-eslint",
"mikestead.dotenv"
]
}
+30
View File
@@ -0,0 +1,30 @@
{
"editor.rulers": [80, 120],
// ===
// Spacing
// ===
"editor.insertSpaces": true,
"editor.tabSize": 2,
"editor.trimAutoWhitespace": true,
"files.trimTrailingWhitespace": true,
"files.eol": "\n",
"files.insertFinalNewline": true,
"files.trimFinalNewlines": true,
// ===
// Event Triggers
// ===
"editor.formatOnSave": true,
"eslint.autoFixOnSave": true,
"eslint.run": "onSave",
"eslint.validate": [
{ "language": "javascript", "autoFix": true },
{ "language": "javascriptreact", "autoFix": true }
],
"prettier.disableLanguages": [],
"prettier.endOfLine": "lf"
}
-1
View File
@@ -19,4 +19,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-47
View File
@@ -1,47 +0,0 @@
{
"parser": "babel-eslint",
"parserOptions": {
"allowImportExportEverywhere": true
},
"plugins": [
"meteor"
],
"env": {
/* Allows global vars from the Meteor environment to pass and enables certain rules */
"meteor": true,
"node": true,
"browser": true
},
"extends": [
"airbnb",
"plugin:meteor/recommended"
],
"settings": {
"import/resolver": "meteor"
},
"rules": {
"meteor/no-session": 0, // We are actually using Session for now...
"meteor/eventmap-params": [2, {"eventParamName": "event"}],
"meteor/eventmap-params": [2, {"templateInstanceParamName": "instance"}],
"import/no-extraneous-dependencies": 0,
"import/no-unresolved": 0, // There are a bunch of ESLint problems with Meteor's resolver
"import/no-duplicates": 0, // So we are disabling these for now
"import/extensions": 0,
"import/no-absolute-path": 0,
"no-console": 0, // For development
"no-plusplus": ["error", { "allowForLoopAfterthoughts": true }],
"indent": ["error", 4],
"new-cap": 0, // Until Match has an exception
"func-names": 0, // This is a bit of an annoying rule
"no-underscore-dangle": 0, // Doesn't seem to mesh with _id for MongoDB Ids (or SimpleSchema)
"max-len": 0, // TODO: re-enable the rules below and fix all of the errors
"consistent-return": 0,
"no-param-reassign": 0,
"no-mixed-operators": 0,
"arrow-body-style": 0,
"valid-typeof": 0,
"import/prefer-default-export": 0
"no-undef": 0
},
"globals": {}
}
-1
View File
@@ -1 +0,0 @@
local
-18
View File
@@ -1,18 +0,0 @@
# This file contains information which helps Meteor properly upgrade your
# app when you run 'meteor update'. You should check it into version control
# with your project.
notices-for-0.9.0
notices-for-0.9.1
0.9.4-platform-file
notices-for-facebook-graph-api-2
1.2.0-standard-minifiers-package
1.2.0-meteor-platform-split
1.2.0-cordova-changes
1.2.0-breaking-changes
1.3.0-split-minifiers-package
1.3.5-remove-old-dev-bundle-link
1.4.0-remove-old-dev-bundle-link
1.4.1-add-shell-server-package
1.4.3-split-account-service-packages
1.5-add-dynamic-import-package
-2
View File
@@ -1,2 +0,0 @@
dev_bundle
local
-7
View File
@@ -1,7 +0,0 @@
# This file contains a token that is unique to your project.
# Check it into your repository along with the rest of this directory.
# It can be used for purposes such as:
# - ensuring you don't accidentally deploy one app on top of another
# - providing package authors with aggregated statistics
1q3vtk41m2yk4k1rqj08l
-136
View File
@@ -1,136 +0,0 @@
{
"starrynight": {
"version": "3.7.0"
},
"nightwatch": {
"version": "0.8.6"
},
"src_folders": [
"./tests/nightwatch/walkthroughs"
],
"output_folder": "./tests/nightwatch/reports",
"custom_commands_path": [
"./tests/nightwatch/commands",
"./tests/nightwatch/commands/api/meteor",
"./tests/nightwatch/commands/actions",
"./tests/nightwatch/commands/components",
"./tests/nightwatch/commands/methods"
],
"custom_assertions_path": [
"./tests/nightwatch/assertions"
],
"globals_path": "./tests/nightwatch/globals.json",
"selenium": {
"start_process": true,
"server_path": "${npm_config_prefix}/lib/node_modules/starrynight/node_modules/selenium-server-standalone-jar/jar/selenium-server-standalone-2.45.0.jar",
"log_path": "tests/nightwatch/logs",
"host": "127.0.0.1",
"port": 4444,
"cli_args": {
"webdriver.chrome.driver": "${npm_config_prefix}/lib/node_modules/starrynight/node_modules/chromedriver/bin/chromedriver"
}
},
"test_settings": {
"default": {
"launch_url": "http://localhost:5000",
"selenium_host": "127.0.0.1",
"selenium_port": 4444,
"pathname": "/wd/hub",
"silent": true,
"disable_colors": false,
"firefox_profile": false,
"ie_driver": "",
"screenshots": {
"enabled": false,
"path": "./tests/nightwatch/screenshots"
},
"desiredCapabilities": {
"browserName": "chrome",
"javascriptEnabled": true,
"acceptSslCerts": true,
"loggingPrefs": {
"browser": "ALL"
}
},
"exclude": "./tests/nightwatch/unittests/*"
},
"phantomjs": {
"desiredCapabilities": {
"browserName": "phantomjs",
"javascriptEnabled": true,
"databaseEnabled": false,
"locationContextEnabled": false,
"applicationCacheEnabled": false,
"browserConnectionEnabled": false,
"webStorageEnabled": false,
"acceptSslCerts": true,
"rotatable": false,
"nativeEvents": false,
"phantomjs.binary.path": "${npm_config_prefix}/lib/node_modules/starrynight/node_modules/phantomjs/bin/phantomjs"
}
},
"travis": {
"launch_url": "http://localhost:3000",
"selenium_host": "127.0.0.1",
"selenium_port": 4444,
"pathname": "/wd/hub",
"silent": true,
"disable_colors": false,
"firefox_profile": false,
"screenshots": {
"enabled": false,
"path": "./tests/nightwatch/screenshots"
},
"desiredCapabilities": {
"browserName": "firefox",
"javascriptEnabled": true,
"databaseEnabled": true,
"locationContextEnabled": true,
"applicationCacheEnabled": true,
"browserConnectionEnabled": true,
"webStorageEnabled": true,
"acceptSslCerts": true,
"rotatable": true,
"nativeEvents": true
}
},
"travischrome": {
"launch_url": "http://localhost:3000",
"selenium_host": "127.0.0.1",
"selenium_port": 4444,
"pathname": "/wd/hub",
"silent": true,
"disable_colors": false,
"firefox_profile": false,
"screenshots": {
"enabled": false,
"path": "./tests/nightwatch/screenshots"
},
"desiredCapabilities": {
"browserName": "chrome",
"javascriptEnabled": true,
"databaseEnabled": true,
"locationContextEnabled": true,
"applicationCacheEnabled": true,
"browserConnectionEnabled": true,
"webStorageEnabled": true,
"acceptSslCerts": true,
"rotatable": true,
"nativeEvents": true,
"chromeOptions": {
"args": [
"--no-sandbox"
]
}
}
},
"unittests": {
"selenium": {
"start_process": false,
"start_session": false
},
"filter": "./tests/nightwatch/unittests/*",
"exclude": ""
}
}
}
-67
View File
@@ -1,67 +0,0 @@
# Meteor packages used by this project, one per line.
# Check this file (and the other files in this directory) into your repository.
#
# 'meteor add' and 'meteor remove' will edit this file for you,
# but you can also edit it by hand.
npm-bcrypt@0.9.3
meteor-base@1.2.0 # Packages every Meteor app needs to have
mobile-experience@1.0.5 # Packages for a great mobile UX
mongo@1.3.0 # The database Meteor supports right now
blaze-html-templates@1.0.4 # Compile .html files into Meteor Blaze views
session@1.1.7 # Client-side reactive dictionary for your app
jquery@1.11.10 # Helpful client-side library
tracker@1.1.3 # Meteor's client-side reactive programming library
standard-minifier-css@1.3.5
standard-minifier-js@2.2.0
http@1.3.0
promise@0.10.0
stylus@2.513.13
random@1.0.10
reactive-var@1.0.11
reactive-dict@1.2.0
check@1.2.5
email@1.2.3
ecmascript@0.9.0 # Enable ECMAScript2015+ syntax in app code
clinical:active-entry
clinical:theming
clinical:fonts
clinical:hipaa-audit-log
clinical:hipaa-logger
# OHIF Packages
ohif:polyfill
ohif:design
ohif:core
ohif:header
ohif:cornerstone
ohif:cornerstone-settings
ohif:viewerbase
ohif:studies
ohif:study-list
ohif:dicom-services
ohif:hanging-protocols
ohif:metadata
# Necessary for Lesion Trakcer
ohif:lesiontracker
ohif:user
ohif:user-management
ohif:select-tree
accounts-base@1.4.0
accounts-password@1.5.0
twbs:bootstrap
fortawesome:fontawesome
momentjs:moment@2.15.1
aldeed:simple-schema # Third party package to deal with schemas
aldeed:template-extension@4.0.0
aldeed:collection2
zuuk:stale-session
dangrossman:bootstrap-daterangepicker
johdirr:meteor-git-rev
cultofcoders:persistent-session@0.4.4
shell-server@0.3.0
-2
View File
@@ -1,2 +0,0 @@
server
browser
-1
View File
@@ -1 +0,0 @@
METEOR@1.6
-147
View File
@@ -1,147 +0,0 @@
accounts-base@1.4.0
accounts-password@1.5.0
aldeed:collection2@2.10.0
aldeed:collection2-core@1.2.0
aldeed:schema-deny@1.1.0
aldeed:schema-index@1.1.1
aldeed:simple-schema@1.5.3
aldeed:template-extension@4.1.0
allow-deny@1.1.0
amplify@1.0.0
autoupdate@1.3.12
babel-compiler@6.24.7
babel-runtime@1.1.1
base64@1.0.10
binary-heap@1.0.10
blaze@2.3.2
blaze-html-templates@1.1.2
blaze-tools@1.0.10
boilerplate-generator@1.3.0
caching-compiler@1.1.9
caching-html-compiler@1.1.2
callback-hook@1.0.10
check@1.2.5
clinical:active-entry@1.5.16
clinical:auto-resizing@0.2.0
clinical:fonts@1.1.6
clinical:hipaa-audit-log@2.4.2
clinical:hipaa-logger@1.3.0
clinical:theming@0.4.10
cultofcoders:persistent-session@0.4.5
dangrossman:bootstrap-daterangepicker@2.1.13
ddp@1.4.0
ddp-client@2.2.0
ddp-common@1.3.0
ddp-rate-limiter@1.0.7
ddp-server@2.1.0
deps@1.0.12
diff-sequence@1.0.7
dynamic-import@0.2.0
ecmascript@0.9.0
ecmascript-runtime@0.5.0
ecmascript-runtime-client@0.5.0
ecmascript-runtime-server@0.5.0
ejson@1.1.0
email@1.2.3
fastclick@1.0.13
fortawesome:fontawesome@4.7.0
geojson-utils@1.0.10
grove:less@0.2.0
hot-code-push@1.0.4
html-tools@1.0.11
htmljs@1.0.11
http@1.3.0
id-map@1.0.9
iron:controller@1.0.12
iron:core@1.0.11
iron:dynamic-template@1.0.12
iron:layout@1.0.12
iron:location@1.0.11
iron:middleware-stack@1.1.0
iron:router@1.0.13
iron:url@1.0.11
johdirr:meteor-git-rev@0.0.4
jquery@1.11.10
launch-screen@1.1.1
livedata@1.0.18
localstorage@1.2.0
logging@1.1.19
mdg:validation-error@0.5.1
meteor@1.8.0
meteor-base@1.2.0
meteor-platform@1.2.6
minifier-css@1.2.16
minifier-js@2.2.1
minimongo@1.4.0
mobile-experience@1.0.5
mobile-status-bar@1.0.14
modules@0.11.0
modules-runtime@0.9.0
momentjs:moment@2.19.1
mongo@1.3.0
mongo-dev-server@1.1.0
mongo-id@1.0.6
mrt:moment@2.8.1
natestrauser:select2@4.0.3
npm-bcrypt@0.9.3
npm-mongo@2.2.33
observe-sequence@1.0.16
ohif:commands@0.0.1
ohif:core@0.0.1
ohif:cornerstone@0.0.1
ohif:cornerstone-settings@0.0.1
ohif:design@0.0.1
ohif:dicom-services@0.0.1
ohif:hanging-protocols@0.0.1
ohif:header@0.0.1
ohif:hotkeys@0.0.1
ohif:lesiontracker@0.0.1
ohif:log@0.0.1
ohif:measurements@0.0.1
ohif:metadata@0.0.1
ohif:polyfill@0.0.1
ohif:select-tree@0.0.1
ohif:servers@0.0.1
ohif:studies@0.0.1
ohif:study-list@0.0.1
ohif:themes@0.0.1
ohif:themes-common@0.0.1
ohif:user@0.0.1
ohif:user-management@0.0.1
ohif:viewerbase@0.0.1
ohif:wadoproxy@0.0.1
ordered-dict@1.0.9
promise@0.10.0
raix:eventemitter@0.1.3
random@1.0.10
rate-limit@1.0.8
reactive-dict@1.2.0
reactive-var@1.0.11
reload@1.1.11
retry@1.0.9
routepolicy@1.0.12
service-configuration@1.0.11
session@1.1.7
sha@1.0.9
shell-server@0.3.0
silentcicero:jszip@0.0.4
spacebars@1.0.15
spacebars-compiler@1.1.3
srp@1.0.10
standard-app-packages@1.0.9
standard-minifier-css@1.3.5
standard-minifier-js@2.2.1
stylus@2.513.13
templating@1.3.2
templating-compiler@1.3.3
templating-runtime@1.3.2
templating-tools@1.1.2
tracker@1.1.3
twbs:bootstrap@3.3.6
ui@1.0.13
underscore@1.0.10
url@1.1.0
validatejs@0.0.1
webapp@1.4.0
webapp-hashing@1.0.9
zuuk:stale-session@1.0.8
-8
View File
@@ -1,8 +0,0 @@
# LesionTracker
LesionTracker is an open source, zero-footprint image viewer focused on oncology clinical trial workflows. It is built using Meteor platform which enables modularity with a set of packages of the OHIF framework.
### Why LesionTracker?
LesionTracker brings an user experience for the basic tumor metrics through web browser. It provides a DICOM server for storing and streaming images to the viewer, tools for measuring and following lesions over time, and a database for measurements of overlay data. A web-based system for image assessments rather than a workstation-based installed application will improve workflow efficiency, enhance accessibility, and promote collaborative image review for the radiologists at cooperating cancer centers.
To get started, checkout [LesionTracker Documentation](https://github.com/OHIF/Viewers/wiki/LesionTracker)
-46
View File
@@ -1,46 +0,0 @@
if (Meteor.isClient){
ActiveEntry.configure({
logo: {
url: '/mini-circles.png',
displayed: true
},
signIn: {
displayFullName: true,
destination: '/studylist'
},
signUp: {
destination: '/studylist'
},
themeColors: {
primary: ""
},
passwordOptions: {
showPasswordStrengthIndicator: false,
requireRegexValidation: true,
//requireStrongPasswords: false
passwordHistoryCount: 6,
failedAttemptsLimit: 5
}
});
}
/*
if (Meteor.isServer){
Accounts.emailTemplates.siteName = 'AwesomeSite';
Accounts.emailTemplates.from = 'AwesomeSite Admin <accounts@example.com>';
Accounts.emailTemplates.enrollAccount.subject = function(user) {
return 'Welcome to Awesome Town, ' + user.profile.name;
};
Accounts.emailTemplates.enrollAccount.text = function(user, url) {
return 'You have been selected to participate in building a better future!'
+ ' To activate your account, simply click the link below:\n\n'
+ url;
};
Meteor.startup(function() {
//process.env.MAIL_URL = 'smtp://sandboxid.mailgun.org:mypassword@smtp.mailgun.org:587';
});
}
*/
-2
View File
@@ -1,2 +0,0 @@
set METEOR_PACKAGE_DIRS=..\Packages
meteor --settings ../config/medkenOrthanc.json
-1
View File
@@ -1 +0,0 @@
METEOR_PACKAGE_DIRS="../Packages" meteor --settings ../config/medkenOrthanc.json
-13
View File
@@ -1,13 +0,0 @@
#!/bin/bash
declare config='../config/orthancDICOMWeb.json'
if [ $# -gt 0 ]; then
if [ "$1" = '--dimse' ]; then
config="${config%/*}/orthancDIMSE.json"
[ -f "$config" ] && echo "DIMSE config file selected: $config"
fi
fi
echo 'Starting Meteor server...'
METEOR_PACKAGE_DIRS="../Packages" meteor --settings "$config"
-2
View File
@@ -1,2 +0,0 @@
set METEOR_PACKAGE_DIRS=..\Packages
meteor --settings ../config/orthancDICOMWeb.json
-2
View File
@@ -1,2 +0,0 @@
echo "Starting Meteor server..."
METEOR_PACKAGE_DIRS="../Packages" meteor --settings ../config/orthancDICOMWeb.json
-3
View File
@@ -1,3 +0,0 @@
<body>
<div id="notificationArea" class="notification-area"></div>
</body>
-2
View File
@@ -1,2 +0,0 @@
body
background-color: black
@@ -1,26 +0,0 @@
<template name="app">
{{#header brandHref='http://ohif.org' headerClasses=instance.headerClasses}}
{{#section 'brand'}}
<svg class="logo-image">
<use xlink:href={{absoluteUrl "packages/ohif_viewerbase/assets/icons.svg#icon-ohif-logo"}}></use>
</svg>
<div class="logo-text">Open Health Imaging Foundation</div>
{{/section}}
{{#section 'headerAfterBrand'}}
{{#if studyListToggleText}}
<a href="#" class="btn studyListLinkSection pull-left js-toggle-studyList" id="{{dasherize studyListToggleText}}-btn">
{{studyListToggleText}}
</a>
{{/if}}
{{/section}}
{{#section 'headerMenu'}}
<span class="user-name pull-left m-r-1">{{userName}}</span>
<div class="menu-toggle pull-right">
<i class="fa fa-cog"></i>
<span class="caret-down"></span>
</div>
{{/section}}
{{/header}}
{{>Template.dynamic template=(choose this.template 'studylist') data=this}}
</template>
-125
View File
@@ -1,125 +0,0 @@
import { Template } from 'meteor/templating';
import { Session } from 'meteor/session';
import { Router } from 'meteor/iron:router';
import { ReactiveVar } from 'meteor/reactive-var';
import { OHIF } from 'meteor/ohif:core';
Template.app.onCreated(() => {
const instance = Template.instance();
instance.headerClasses = new ReactiveVar('');
OHIF.header.dropdown.setItems([{
action: OHIF.user.audit,
text: 'View Audit Log',
iconClasses: 'log',
iconSvgUse: 'packages/ohif_viewerbase/assets/icons.svg#log',
separatorAfter: true
}, {
action: () => OHIF.ui.showDialog('themeSelectorModal'),
text: 'Themes',
iconClasses: 'theme',
iconSvgUse: 'packages/ohif_viewerbase/assets/icons.svg#theme',
separatorAfter: true
}, {
action: () => OHIF.ui.showDialog('serverInformationModal'),
text: 'Server Information',
iconClasses: 'server',
iconSvgUse: 'packages/ohif_viewerbase/assets/icons.svg#server',
separatorAfter: true
}, {
action: () => OHIF.ui.showDialog('userPreferencesDialog'),
text: 'Preferences',
icon: 'fa fa-user',
separatorAfter: true
}, {
action: OHIF.user.changePassword,
text: 'Change Password',
iconClasses: 'password',
iconSvgUse: 'packages/ohif_viewerbase/assets/icons.svg#password'
}, {
action: OHIF.user.logout,
text: 'Logout',
iconClasses: 'logout',
iconSvgUse: 'packages/ohif_viewerbase/assets/icons.svg#logout'
}]);
instance.autorun(() => {
const currentRoute = Router.current();
if (!currentRoute) return;
const routeName = currentRoute.route.getName();
const isViewer = routeName.indexOf('viewer') === 0;
// Add or remove the strech class from body
$(document.body)[isViewer ? 'addClass' : 'removeClass']('stretch');
// Set the header on its bigger version if the viewer is not opened
instance.headerClasses.set(isViewer ? '' : 'header-big');
// Set the viewer open state on session
Session.set('ViewerOpened', isViewer);
});
});
Template.app.events({
'click .js-toggle-studyList'(event, instance) {
event.preventDefault();
event.stopPropagation();
const isViewer = Session.get('ViewerOpened');
if (!isViewer) {
const timepointId = OHIF.viewer.data.currentTimepointId;
if (timepointId) {
Router.go('viewerTimepoint', { timepointId });
} else {
const { studyInstanceUids } = OHIF.viewer.data;
Router.go('viewerStudies', { studyInstanceUids });
}
return;
}
OHIF.ui.unsavedChanges.presentProactiveDialog('viewer.*', (hasChanges, userChoice) => {
if (!hasChanges) {
return Router.go('studylist');
}
switch (userChoice) {
case 'abort-action':
return;
case 'save-changes':
OHIF.ui.unsavedChanges.trigger('viewer', 'save', false);
OHIF.ui.unsavedChanges.clear('viewer.*');
break;
case 'abandon-changes':
OHIF.ui.unsavedChanges.clear('viewer.*');
break;
}
Router.go('studylist');
}, {
position: {
x: event.clientX + 15,
y: event.clientY + 15
}
});
}
});
Template.app.helpers({
userName: OHIF.user.getName,
studyListToggleText() {
const isViewer = Session.get('ViewerOpened');
// Return empty if viewer was not opened yet
if (!OHIF.utils.ObjectPath.get(OHIF, 'viewer.data.studyInstanceUids')) return;
return isViewer ? 'Study list' : 'Back to viewer';
},
dasherize(text) {
return text.replace(/ /g, '-').toLowerCase();
}
});
Session.set('defaultSignInMessage', 'Tumor tracking in your browser.');
@@ -1,88 +0,0 @@
@require "{ohif:design}/app"
body>.header
.brand
height: 30px
display: inline-block
text-decoration: none
.logo-image
display: inline-block
fill: transparent
float: left
height: 100%
margin: 0 8px 0 0
width: 30px
.logo-text
display: inline-block
font-family: $logoFontFamily
font-size: 14px
font-weight: $logoFontWeight
theme('color', '$textPrimaryColor')
line-height: 30px
.header-menu
.user-name
font-size: 13px
.menu-toggle
theme('border-left', 'solid 1px $defaultColor')
display: inline-block
height: 18px
padding: 0 8px
.fa
theme('color', '$defaultColor')
font-size: 17px
line-height: 18px
.caret-down
theme('color', '$uiGrayLight')
margin: 0 4px 4px 2px
.btn
theme('color', '$textSecondaryColor')
cursor: pointer
font-size: 13px
font-weight: 500
line-height: 26px
&:hover
theme('color', '$hoverColor')
&:active
theme('color', '$activeColor')
.studyListLinkSection
theme('border-left', '%s solid $uiBorderColor' % $uiBorderThickness)
margin: 3px 0 0 10px
padding: 0 0 0 10px
&#back-to-viewer-btn
border-left: 0
&.header-big
padding-left: $studyListPadding
padding-right: $studyListPadding
.brand
height: 100%
width: 80%
line-height: $topBarExpandedHeight - 10px
.logo-image
margin: 0 20px 0 0
width: 50px
.logo-text
font-size: 30px
.studyListLinkSection
border: none
left: 0
margin: 0
padding: 0
position: absolute
top: 0
@@ -1,37 +0,0 @@
<template name="toolbarSection">
<div class="toolbarSection noselect p-x-2">
<div class="clearfix">
<div class="pull-left m-t-1">
{{>roundedButtonGroup leftSidebarToggleButtonData}}
</div>
{{>toolbarSectionTools toolbarButtons=toolbarButtons}}
<div class="pull-right m-t-1 rm-x-1">
{{#form (extend api=instance.api)}}
{{#button class='btn p-x-2' action='save' disabled=(isFinishDisabled)}}Save{{/button}}
{{/form}}
</div>
<div id="toggleMeasurements" class="pull-right m-t-1 rm-x-1">
{{>roundedButtonGroup rightSidebarToggleButtonData}}
</div>
<div id="toggleHUD" class="toolbarSectionButton pull-right rp-x-1 m-t-1 rm-r-3 {{#if session 'measurementTableHudOpen'}}active{{/if}}">
<div class="svgContainer">
<svg>
<use xlink:href={{absoluteUrl "packages/ohif_viewerbase/assets/icons.svg#icon-hud"}}></use>
</svg>
</div>
<div class="buttonLabel">HUD</div>
</div>
<div id="toggleTrial" class="toolbarSectionButton pull-right rp-x-1 m-t-1 rm-r-1">
<div class="svgContainer">
<svg>
<use xlink:href={{absoluteUrl "packages/ohif_viewerbase/assets/icons.svg#icon-trial-info"}}></use>
</svg>
</div>
<div class="buttonLabel">Trial</div>
</div>
</div>
</div>
</template>
@@ -1,319 +0,0 @@
import { Template } from 'meteor/templating';
import { Session } from 'meteor/session';
import { Tracker } from 'meteor/tracker';
import { OHIF } from 'meteor/ohif:core';
import { Viewerbase } from 'meteor/ohif:viewerbase';
Template.toolbarSection.helpers({
isFinishDisabled() {
const instance = Template.instance();
// Run this computation on save or every time any measurement / timepoint suffer changes
OHIF.ui.unsavedChanges.depend();
instance.saveObserver.depend();
Session.get('LayoutManagerUpdated');
return OHIF.ui.unsavedChanges.probe('viewer.*') === 0;
},
leftSidebarToggleButtonData() {
const instance = Template.instance();
return {
toggleable: true,
key: 'leftSidebar',
value: instance.data.state,
options: [{
value: 'studies',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-studies',
svgWidth: 15,
svgHeight: 13,
bottomLabel: 'Studies'
}]
};
},
rightSidebarToggleButtonData() {
const instance = Template.instance();
return {
toggleable: true,
key: 'rightSidebar',
value: instance.data.state,
options: [{
value: 'measurements',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-measurements-lesions',
svgWidth: 18,
svgHeight: 10,
bottomLabel: 'Measurements'
}]
};
},
toolbarButtons() {
// Check if the measure tools shall be disabled
const isToolDisabled = false; //!Template.instance().data.timepointApi;
const targetSubTools = [];
targetSubTools.push({
id: 'bidirectional',
title: 'Bidirectional',
classes: 'imageViewerTool rm-l-3',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-measure-target',
disabled: isToolDisabled
});
targetSubTools.push({
id: 'targetCR',
title: 'CR Target',
classes: 'imageViewerTool',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-measure-target-cr',
disabled: isToolDisabled
});
targetSubTools.push({
id: 'targetUN',
title: 'UN Target',
classes: 'imageViewerTool',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-measure-target-un',
disabled: isToolDisabled
});
const extraTools = [];
extraTools.push({
id: 'stackScroll',
title: 'Stack Scroll',
classes: 'imageViewerTool',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-stack-scroll'
});
extraTools.push({
id: 'resetViewport',
title: 'Reset',
classes: 'imageViewerCommand',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-reset'
});
extraTools.push({
id: 'rotateR',
title: 'Rotate Right',
classes: 'imageViewerCommand',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-rotate-right'
});
extraTools.push({
id: 'flipH',
title: 'Flip H',
classes: 'imageViewerCommand',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-flip-horizontal'
});
extraTools.push({
id: 'flipV',
title: 'Flip V',
classes: 'imageViewerCommand',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-flip-vertical'
});
extraTools.push({
id: 'invert',
title: 'Invert',
classes: 'imageViewerCommand',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-invert'
});
extraTools.push({
id: 'magnify',
title: 'Magnify',
classes: 'imageViewerTool',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-magnify'
});
extraTools.push({
id: 'ellipticalRoi',
title: 'Ellipse',
classes: 'imageViewerTool',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-elliptical-roi'
});
extraTools.push({
id: 'toggleDownloadDialog',
title: 'Download',
classes: 'imageViewerCommand',
iconClasses: 'fa fa-camera',
active: () => $('#imageDownloadDialog').is(':visible')
});
extraTools.push({
id: 'toggleCineDialog',
title: 'CINE',
classes: 'imageViewerCommand',
iconClasses: 'fa fa-youtube-play',
active: () => $('#cineDialog').is(':visible')
});
const buttonData = [];
buttonData.push({
id: 'zoom',
title: 'Zoom',
classes: 'imageViewerTool',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-zoom'
});
buttonData.push({
id: 'wwwc',
title: 'Levels',
classes: 'imageViewerTool',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-levels'
});
buttonData.push({
id: 'pan',
title: 'Pan',
classes: 'imageViewerTool',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-pan'
});
buttonData.push({
id: 'linkStackScroll',
title: 'Link',
classes: 'imageViewerCommand toolbarSectionButton nonAutoDisableState',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-link',
disableFunction: Viewerbase.viewportUtils.isStackScrollLinkingDisabled
});
buttonData.push({
id: 'toggleTarget',
title: 'Target',
classes: 'rm-l-3',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-measure-target',
disabled: isToolDisabled,
subTools: targetSubTools
});
buttonData.push({
id: 'nonTarget',
title: 'Non-Target',
classes: 'imageViewerTool',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-measure-non-target',
disabled: isToolDisabled
});
buttonData.push({
id: 'length',
title: 'Temp',
classes: 'imageViewerTool',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-measure-temp'
});
buttonData.push({
id: 'toggleMore',
title: 'More',
classes: 'rp-x-1 rm-l-3',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-more',
disabled: isToolDisabled,
subTools: extraTools
});
return buttonData;
}
});
Template.toolbarSection.events({
'click #toggleTarget'(event, instance) {
const $target = $(event.currentTarget);
if (!$target.hasClass('active') && $target.hasClass('expanded')) {
Viewerbase.toolManager.setActiveTool('bidirectional');
}
},
'click #toggleHUD'(event) {
const $this = $(event.currentTarget);
// Stop here if the tool is disabled
if ($this.hasClass('disabled')) {
return;
}
const state = Session.get('measurementTableHudOpen');
Session.set('measurementTableHudOpen', !state);
},
'click #toggleTrial'(event) {
if (!$(event.currentTarget).hasClass('disabled')) {
OHIF.ui.showDialog('trialOptionsModal');
}
}
});
Template.toolbarSection.onCreated( function() {
const instance = Template.instance();
instance.path = 'viewer.studyViewer.measurements';
instance.saveObserver = new Tracker.Dependency();
instance.api = {
save() {
// Clear signaled unsaved changes...
const successHandler = () => {
OHIF.ui.unsavedChanges.clear(`${instance.path}.*`);
instance.saveObserver.changed();
};
// Display the error messages
const errorHandler = data => {
OHIF.ui.showDialog('dialogInfo', Object.assign({ class: 'themed' }, data));
};
const promise = instance.data.measurementApi.storeMeasurements();
promise.then(successHandler).catch(errorHandler);
OHIF.ui.showDialog('dialogLoading', {
promise,
text: 'Saving measurement data'
});
return promise;
}
};
instance.unsavedChangesHandler = () => {
const isNotDisabled = !instance.$('.js-finish-case').hasClass('disabled');
if (isNotDisabled && instance.progressPercent.get() === 100) {
instance.api.save();
}
};
// Attach handler for unsaved changes dialog...
OHIF.ui.unsavedChanges.attachHandler(instance.path, 'save', instance.unsavedChangesHandler);
});
Template.toolbarSection.onRendered(function() {
// Set disabled/enabled tool buttons that are set in toolManager
const states = Viewerbase.toolManager.getToolDefaultStates();
const disabledToolButtons = states.disabledToolButtons;
const allToolbarButtons = $('.toolbarSection').find('.toolbarSectionButton:not(.nonAutoDisableState)');
// Additional toolbar buttons whose classes are not toolbarSectionButton
allToolbarButtons.push($('#toolbarSectionEntry')[0]);
allToolbarButtons.push($('#toggleMeasurements')[0]);
if (disabledToolButtons && disabledToolButtons.length > 0) {
for (let i = 0; i < allToolbarButtons.length; i++) {
const toolbarButton = allToolbarButtons[i];
const index = disabledToolButtons.indexOf($(toolbarButton).attr('id'));
if (index !== -1) {
$(toolbarButton).addClass('disabled');
$(toolbarButton).find('*').addClass('disabled');
} else {
$(toolbarButton).removeClass('disabled');
$(toolbarButton).find('*').removeClass('disabled');
}
}
}
});
Template.caseProgress.onDestroyed(() => {
const instance = Template.instance();
// Remove unsaved changes handler after this view has been destroyed...
OHIF.ui.unsavedChanges.removeHandler(instance.path, 'save', instance.unsavedChangesHandler);
});
@@ -1,27 +0,0 @@
@import "{ohif:design}/app"
.toolbarSection
theme('border-bottom', '%s solid $uiBorderColor' % $uiBorderThickness)
flex: 0 0 auto
height: $toolbarHeight
padding-top: 6px
position: relative
transition(height 300ms ease)
width: 100%
&.expanded
height: $toolbarHeight + $toolbarDrawerHeight
.toolbarSectionEntry
theme('color', '$defaultColor')
cursor: pointer
display: inline-block
theme('fill', '$defaultColor')
margin-top: 3px
min-width: 30px
theme('stroke', '$defaultColor')
text-align: center
.saveMeasurements
display: inline-block
margin-left: 22px
@@ -1,17 +0,0 @@
<template name="viewer">
<div class="viewerDialogs">
{{#if and Template.subscriptionsReady dataSourcesReady}}
{{>confirmDeleteDialog}}
{{>measurementTableHUD (clone this)}}
{{>cineDialog}}
{{/if}}
</div>
<div id="viewer">
{{#if and Template.subscriptionsReady dataSourcesReady}}
{{>toolbarSection (clone this state=state)}}
{{>viewerSection (clone this state=state)}}
{{else}}
{{>loadingText}}
{{/if}}
</div>
</template>
@@ -1,388 +0,0 @@
import { Meteor } from 'meteor/meteor';
import { Template } from 'meteor/templating';
import { Tracker } from 'meteor/tracker';
import { Session } from 'meteor/session';
import { ReactiveDict } from 'meteor/reactive-dict';
import { _ } from 'meteor/underscore';
import { $ } from 'meteor/jquery';
import { OHIF } from 'meteor/ohif:core';
import 'meteor/ohif:cornerstone';
import 'meteor/ohif:viewerbase';
import 'meteor/ohif:metadata';
Meteor.startup(() => {
Session.set('TimepointsReady', false);
Session.set('MeasurementsReady', false);
OHIF.viewer.displaySeriesQuickSwitch = true;
OHIF.viewer.stackImagePositionOffsetSynchronizer = new OHIF.viewerbase.StackImagePositionOffsetSynchronizer();
// Create the synchronizer used to update reference lines
OHIF.viewer.updateImageSynchronizer = new cornerstoneTools.Synchronizer('cornerstonenewimage', cornerstoneTools.updateImageSynchronizer);
OHIF.viewer.metadataProvider = new OHIF.cornerstone.MetadataProvider();
// Metadata configuration
const metadataProvider = OHIF.viewer.metadataProvider;
cornerstone.metaData.addProvider(metadataProvider.getProvider());
// Target tools configuration
OHIF.lesiontracker.configureTargetToolsHandles();
});
Template.viewer.onCreated(() => {
Session.set('ViewerReady', false);
const instance = Template.instance();
// Define the OHIF.viewer.data global object
OHIF.viewer.data = OHIF.viewer.data || Session.get('ViewerData') || {};
const { TimepointApi, MeasurementApi, ConformanceCriteria } = OHIF.measurements;
const currentTimepointId = OHIF.viewer.data.currentTimepointId;
const timepointApi = new TimepointApi(currentTimepointId);
const measurementApi = new MeasurementApi(timepointApi);
const conformanceCriteria = new ConformanceCriteria(measurementApi, timepointApi);
const apis = {
timepointApi,
measurementApi,
conformanceCriteria
};
Object.assign(OHIF.viewer, apis);
Object.assign(instance.data, apis);
instance.state = new ReactiveDict();
instance.state.set('leftSidebar', Session.get('leftSidebar'));
instance.state.set('rightSidebar', Session.get('rightSidebar'));
const viewportUtils = OHIF.viewerbase.viewportUtils;
OHIF.viewer.functionList = $.extend(OHIF.viewer.functionList, {
toggleLesionTrackerTools: OHIF.lesiontracker.toggleLesionTrackerTools,
bidirectional: () => {
// Used for hotkeys
OHIF.viewerbase.toolManager.setActiveTool('bidirectional');
},
nonTarget: () => {
// Used for hotkeys
OHIF.viewerbase.toolManager.setActiveTool('nonTarget');
},
// Viewport functions
toggleCineDialog: viewportUtils.toggleCineDialog,
clearTools: viewportUtils.clearTools,
resetViewport: viewportUtils.resetViewport,
invert: viewportUtils.invert,
flipV: viewportUtils.flipV,
flipH: viewportUtils.flipH,
rotateL: viewportUtils.rotateL,
rotateR: viewportUtils.rotateR,
linkStackScroll: viewportUtils.linkStackScroll
});
if (OHIF.viewer.data.loadedSeriesData) {
OHIF.log.info('Reloading previous loadedSeriesData');
OHIF.viewer.loadedSeriesData = OHIF.viewer.data.loadedSeriesData;
} else {
OHIF.log.info('Setting default viewer data');
OHIF.viewer.loadedSeriesData = {};
OHIF.viewer.data.loadedSeriesData = {};
}
// Store the viewer data in session for further user
Session.setPersistent('ViewerData', OHIF.viewer.data);
Session.set('activeViewport', OHIF.viewer.data.activeViewport || false);
// Set lesion tool buttons as disabled if pixel spacing is not available for active element
instance.autorun(OHIF.lesiontracker.pixelSpacingAutorunCheck);
// @TypeSafeStudies
// Clears OHIF.viewer.Studies collection
OHIF.viewer.Studies.removeAll();
// @TypeSafeStudies
// Clears OHIF.viewer.StudyMetadataList collection
OHIF.viewer.StudyMetadataList.removeAll();
instance.data.studies.forEach(study => {
const studyMetadata = new OHIF.metadata.StudyMetadata(study, study.studyInstanceUid);
let displaySets = study.displaySets;
if (!study.displaySets) {
displaySets = OHIF.viewerbase.sortingManager.getDisplaySets(studyMetadata);
study.displaySets = displaySets;
}
studyMetadata.setDisplaySets(displaySets);
study.selected = true;
OHIF.viewer.Studies.insert(study);
OHIF.viewer.StudyMetadataList.insert(studyMetadata);
});
const patientId = instance.data.studies[0].patientId;
// LT-382: Preventing HP to keep identifying studies in timepoints that might be removed
instance.data.studies.forEach(study => (delete study.timepointType));
// TODO: Consider combining the retrieval calls into one?
const timepointsPromise = timepointApi.retrieveTimepoints({ patientId });
timepointsPromise.then(() => {
const timepoints = timepointApi.all();
// Set timepointType in studies to be used in hanging protocol engine
timepoints.forEach(timepoint => {
timepoint.studyInstanceUids.forEach(studyInstanceUid => {
const study = _.find(instance.data.studies, element => {
return element.studyInstanceUid === studyInstanceUid;
});
if (!study) {
return;
}
// @TODO: Maybe this should be a setCustomAttribute?
study.timepointType = timepoint.timepointType;
});
});
Session.set('TimepointsReady', true);
const timepointIds = timepoints.map(t => t.timepointId);
const measurementsPromise = measurementApi.retrieveMeasurements(patientId, timepointIds);
measurementsPromise.then(() => {
Session.set('MeasurementsReady', true);
measurementApi.syncMeasurementsAndToolData();
});
});
// Provide the necessary data to the Measurement API and Timepoint API
const prior = timepointApi.prior();
if (prior) {
measurementApi.priorTimepointId = prior.timepointId;
}
// Enable/Disable Lesion Tracker Tools if the opened study is associated or not
OHIF.lesiontracker.toggleLesionTrackerToolsButtons(!!currentTimepointId);
let firstMeasurementActivated = false;
instance.autorun(() => {
if (!Session.get('TimepointsReady') ||
!Session.get('MeasurementsReady') ||
!Session.get('ViewerReady') ||
firstMeasurementActivated) {
return;
}
// Find and activate the first measurement by Lesion Number
// NOTE: This is inefficient, we should be using a hanging protocol
// to hang the first measurement's imageId immediately, rather
// than changing images after initial loading...
const config = OHIF.measurements.MeasurementApi.getConfiguration();
const tools = config.measurementTools[0].childTools;
const firstTool = tools[Object.keys(tools)[0]];
const measurementTypeId = firstTool.id;
const collection = measurementApi.tools[measurementTypeId];
const sorting = {
sort: {
measurementNumber: -1
}
};
const data = collection.find({}, sorting).fetch();
const current = timepointApi.current();
if (!current) {
return;
}
let timepoints = [current];
const prior = timepointApi.prior();
if (prior) {
timepoints.push(prior);
}
// TODO: Clean this up, it's probably an inefficient way to get what we need
const groupObject = _.groupBy(data, m => m.measurementNumber);
// Reformat the data
const rows = Object.keys(groupObject).map(key => ({
measurementTypeId: measurementTypeId,
measurementNumber: key,
entries: groupObject[key]
}));
const rowItem = rows[0];
// Activate the first lesion
if (rowItem) {
OHIF.measurements.jumpToRowItem(rowItem, timepoints);
}
firstMeasurementActivated = true;
});
instance.measurementModifiedHandler = _.throttle((event, instance) => {
OHIF.measurements.MeasurementHandlers.onModified(event, instance);
}, 300);
});
/**
* Sets sidebar configuration and active tool based on viewer template instance
* @param {Object} instance Template instance for viewer template
*/
const setActiveToolAndSidebar = () => {
const instance = Template.instance();
const { studies, currentTimepointId, measurementApi, timepointIds } = instance.data;
// Default actions for Associated Studies
if (currentTimepointId) {
// Follow-up studies: same as the first measurement in the table
// Baseline studies: target-tool
if (studies[0]) {
let activeTool;
// In follow-ups, get the baseline timepointId
const timepointId = timepointIds.find(id => id !== currentTimepointId);
// Follow-up studies
if (studies[0].timepointType === 'followup' && timepointId) {
const measurementTools = OHIF.measurements.MeasurementApi.getConfiguration().measurementTools;
// Create list of measurement tools
const measurementTypes = measurementTools.map(
tool => {
const { id, cornerstoneToolType } = tool;
return {
id,
cornerstoneToolType
};
}
);
// Iterate over each measurement tool to find the first baseline
// measurement. If so, stops the loop and prevent fetching from all
// collections
measurementTypes.every(({ id, cornerstoneToolType }) => {
// Get measurement
if (measurementApi[id]) {
const measurement = measurementApi[id].findOne({ timepointId });
// Found a measurement, save tool and stop loop
if (measurement) {
const isArray = Array.isArray(cornerstoneToolType);
activeTool = isArray ? cornerstoneToolType[0] : cornerstoneToolType;
return false;
}
}
return true;
});
}
// If not set, for associated studies default is target-tool
OHIF.viewerbase.toolManager.setActiveTool(activeTool || 'bidirectional');
}
// Toggle Measurement Table
if (instance.state) {
instance.state.set('rightSidebar', 'measurements');
}
}
// Hide as default for single study
else {
if (instance.state) {
instance.state.set('rightSidebar', null);
}
}
};
/**
* Inits OHIF Hanging Protocol's onReady.
* It waits for OHIF Hanging Protocol to be ready to instantiate the ProtocolEngine
* Hanging Protocol will use OHIF LayoutManager to render viewports properly
*/
const initHangingProtocol = () => {
// When Hanging Protocol is ready
HP.ProtocolStore.onReady(() => {
setActiveToolAndSidebar();
// Gets all StudyMetadata objects: necessary for Hanging Protocol to access study metadata
const studyMetadataList = OHIF.viewer.StudyMetadataList.all();
// Caches Layout Manager: Hanging Protocol uses it for layout management according to current protocol
const layoutManager = OHIF.viewerbase.layoutManager;
// Instantiate StudyMetadataSource: necessary for Hanging Protocol to get study metadata
const studyMetadataSource = new OHIF.studies.classes.OHIFStudyMetadataSource();
// Creates Protocol Engine object with required arguments
const ProtocolEngine = new HP.ProtocolEngine(layoutManager, studyMetadataList, [], studyMetadataSource);
// Sets up Hanging Protocol engine
HP.setEngine(ProtocolEngine);
Session.set('ViewerReady', true);
Session.set('activeViewport', 0);
});
};
Template.viewer.onRendered(function() {
this.autorun(() => {
// To make sure ohif viewerMain is rendered before initializing Hanging Protocols
const isOHIFViewerMainRendered = Session.get('OHIFViewerMainRendered');
// To avoid first run
if (isOHIFViewerMainRendered) {
// To run only when ViewerMainRendered dependency has changed.
// because initHangingProtocol can have other reactive components
Tracker.nonreactive(initHangingProtocol);
}
});
});
Template.viewer.helpers({
dataSourcesReady() {
// TODO: Find a better way to do this
const ready = Session.get('TimepointsReady') && Session.get('MeasurementsReady');
OHIF.log.info('dataSourcesReady? : ' + ready);
return ready;
},
state() {
return Template.instance().state;
}
});
Template.viewer.events({
'cornerstonetoolsmeasurementadded .imageViewerViewport'(event, instance) {
const originalEvent = event.originalEvent;
OHIF.measurements.MeasurementHandlers.onAdded(originalEvent, instance);
},
'cornerstonetoolsmeasurementmodified .imageViewerViewport'(event, instance) {
const originalEvent = event.originalEvent;
instance.measurementModifiedHandler(originalEvent, instance);
},
'cornerstonemeasurementremoved .imageViewerViewport'(event, instance) {
const originalEvent = event.originalEvent;
OHIF.measurements.MeasurementHandlers.onRemoved(originalEvent, instance);
}
});
Template.viewer.onDestroyed(() => {
Session.set('ViewerMainReady', false);
Session.set('TimepointsReady', false);
Session.set('MeasurementsReady', false);
OHIF.viewer.stackImagePositionOffsetSynchronizer.deactivate();
});
@@ -1,55 +0,0 @@
@import "{ohif:design}/app"
#viewer
background-color: black
height: 100%
width: 100%
#imageViewerViewports
.viewportContainer
border: none !important
outline: 0 !important // Prevent blue outline in Chrome
position: relative
&:hover
&.active
&:hover.active
border: none !important
outline: 0 !important // Prevent blue outline in Chrome
.removable
.imageViewerViewport
theme('border-bottom', '%s solid $uiBorderColor' % $uiBorderThickness)
canvas
border-color: transparent
border-style: solid
border-width: 1px
&:not(:last-child)
.removable
.imageViewerViewport
theme('border-right', '%s solid $uiBorderColor' % $uiBorderThickness)
&:first-child
.removable
.imageViewerViewport
theme('border-left', '%s solid $uiBorderColor' % $uiBorderThickness)
&.active
.removable
.imageViewerViewport
border-right: none !important
canvas
theme('border-color', '$uiBorderColorActive')
.sidebar-left-open
#layoutManagerTarget
#imageViewerViewports
.viewportContainer
&:first-child
.removable
.imageViewerViewport
border-left: none
@@ -1,21 +0,0 @@
<template name="viewerSection">
<div class="viewerSection">
<div class="sidebarMenu sidebar-left {{#if leftSidebarOpen}}sidebar-open{{/if}}">
{{#if isTimepointBrowser}}
{{>timepointBrowserSidebar (clone this)}}
{{else}}
{{#if instance.loading.get}}
{{>loadingText}}
{{else}}
{{>studyBrowserSidebar (clone this studiesInformation=instance.studiesInformation.get)}}
{{/if}}
{{/if}}
</div>
<div class="mainContent {{#if leftSidebarOpen}}sidebar-left-open{{/if}} {{#if rightSidebarOpen}}sidebar-right-open{{/if}}">
{{>viewerMain (clone this)}}
</div>
<div class="sidebarMenu sidebar-right {{#if rightSidebarOpen}}sidebar-open{{/if}}">
{{>measurementTable (clone this)}}
</div>
</div>
</template>
@@ -1,72 +0,0 @@
import { Template } from 'meteor/templating';
import { ReactiveVar } from 'meteor/reactive-var';
import { $ } from 'meteor/jquery';
import { OHIF } from 'meteor/ohif:core';
Template.viewerSection.onCreated(() => {
const instance = Template.instance();
instance.isTimepointBrowser = () => !!OHIF.viewer.data.currentTimepointId;
OHIF.viewer.quickSwitchStudyBrowserTemplate = 'timepointBrowserQuickSwitch';
if (!instance.isTimepointBrowser()) {
OHIF.viewer.quickSwitchStudyBrowserTemplate = 'studyBrowserQuickSwitch';
instance.loading = new ReactiveVar(true);
instance.studiesInformation = new ReactiveVar([]);
const filter = { studyInstanceUid: OHIF.viewer.data.studyInstanceUids };
OHIF.studies.searchStudies(filter).then(studiesData => {
instance.loading.set(false);
instance.studiesInformation.set(studiesData);
}).catch(error => {
instance.loading.set(false);
const text = 'An error has occurred while retrieving studies information';
OHIF.ui.notifications.danger({ text });
OHIF.log.error(error);
});
}
});
Template.viewerSection.events({
'transitionend .sidebarMenu'(event) {
if (!event.target.classList.contains('sidebarMenu')) return;
window.ResizeViewportManager.handleResize();
},
'ohif.lesiontracker.timepoint.changeViewType .timepoint-browser-list'(event, instance, viewType) {
const $browserList = $(event.currentTarget);
const $allBrowserItems = $browserList.find('.timepoint-browser-item');
// Removes all active classes to collapse the timepoints and studies
$allBrowserItems.removeClass('active');
if (viewType === 'key') {
const { timepointIds, currentTimepointId } = OHIF.viewer.data;
timepointIds.forEach(timepointId => {
const $browserItem = $allBrowserItems.filter(`[data-id=${timepointId}]`);
$browserItem.find('.timepoint-item').trigger('ohif.lesiontracker.timepoint.load');
});
// Show only current timepoint expanded on key timepoints tab
const $browserItem = $allBrowserItems.filter(`[data-id=${currentTimepointId}]`);
$browserItem.find('.timepoint-item').trigger('click');
}
}
});
Template.viewerSection.helpers({
leftSidebarOpen() {
return Template.instance().data.state.get('leftSidebar');
},
rightSidebarOpen() {
return Template.instance().data.state.get('rightSidebar');
},
isTimepointBrowser() {
return Template.instance().isTimepointBrowser();
},
studiesInformation() {
return Template.instance().studiesInformation.get();
}
});
@@ -1,81 +0,0 @@
@require '{ohif:design}/app'
.viewerSection
display: flex
flex: 1
flex-flow: row nowrap
align-items: stretch
height: 'calc(100% - %s)' % ($toolbarHeight + $topBarHeight)
width: 100%
.sidebarMenu
height: 100%
// required transformation to make inner fixed elements relative to this one
transform(scale(1))
transition($sidebarTransition)
.sidebar-option
height: 100%
max-width: inherit
position: absolute
transform(translateX(100%))
transition($sidebarTransition)
width: 100%
&.active
transform(translateX(0%))
.sidebar-left
theme('border-right', '%s solid $uiBorderColor' % $uiBorderThickness)
flex: 1
margin-left: - $studiesSidebarMenuWidth
max-width: $studiesSidebarMenuWidth
order: 1
visibility: hidden
&.sidebar-open
margin-left: 0
visibility: visible
.loadingTextDiv
theme('color', '$textSecondaryColor')
font-size: 32px
.mainContent
flex: 1
height: 100%
order: 2
overflow: visible
position: relative
transition($sidebarTransition)
width: 100%
.viewerMain
left: 0
position: absolute
top: 0
.sidebar-right
flex: 1
margin-right: - $lesionsSidebarMenuWidth
max-width: $lesionsSidebarMenuWidth
order: 3
position: relative
visibility: hidden
&[data-timepoints="3"]
margin-right: - ($lesionsSidebarMenuWidth + 135.5px)
max-width: $lesionsSidebarMenuWidth + 135.5px
&[data-timepoints="4"]
margin-right: - ($lesionsSidebarMenuWidth + 270px)
max-width: $lesionsSidebarMenuWidth + 270px
&.sidebar-open
margin-right: 0
visibility: visible
.studiesListedChanger
theme('border-bottom', '%s solid $uiBorderColor' % $uiBorderThickness)
padding: 20px 10px
text-align: center
-34
View File
@@ -1,34 +0,0 @@
import { Meteor } from 'meteor/meteor';
import { Accounts } from 'meteor/accounts-base';
import { OHIF } from 'meteor/ohif:core';
import { cornerstoneWADOImageLoader } from 'meteor/ohif:cornerstone';
Meteor.startup(function() {
const maxWebWorkers = Math.max(navigator.hardwareConcurrency - 1, 1);
const config = {
maxWebWorkers: maxWebWorkers,
startWebWorkersOnDemand: true,
webWorkerPath : OHIF.utils.absoluteUrl('packages/ohif_cornerstone/public/js/cornerstoneWADOImageLoaderWebWorker.es5.js'),
taskConfiguration: {
'decodeTask' : {
loadCodecsOnStartup : true,
initializeCodecsOnStartup: false,
codecsPath: OHIF.utils.absoluteUrl('packages/ohif_cornerstone/public/js/cornerstoneWADOImageLoaderCodecs.es5.js'),
usePDFJS: false
}
}
};
cornerstoneWADOImageLoader.webWorkerManager.initialize(config);
cornerstoneWADOImageLoader.configure({
beforeSend: function(xhr) {
const userId = Meteor.userId();
const loginToken = Accounts._storedLoginToken();
if (userId && loginToken) {
xhr.setRequestHeader("x-user-id", userId);
xhr.setRequestHeader("x-auth-token", loginToken);
}
}
});
});
-17
View File
@@ -1,17 +0,0 @@
<head>
<meta charset="utf-8">
<title>Lesion Tracker</title>
<meta name="description" content="Prototype viewer application for oncology">
<!-- Prevents page zooming -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="shortcut icon" type="image/png" href="/images/logo.png" sizes="16x16 32x32 64x64">
<!--Best display for mobile devices-->
<meta http-equiv="cleartype" content="on">
<meta name="MobileOptimized" content="320">
<meta name="HandheldFriendly" content="True">
<meta name="apple-mobile-web-app-capable" content="yes">
<!-- Make SVG work on IE -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
</head>
@@ -1,111 +0,0 @@
import { Meteor } from 'meteor/meteor';
Meteor.startup(() => {
console.log('Adding Lesion Tracker Hanging Protocols');
//------------------------------------------------------------------------------
// Define Baseline protocol
const proto = new HP.Protocol('LT_Baseline');
proto.locked = true;
const isBaseline = new HP.ProtocolMatchingRule();
isBaseline.required = true;
isBaseline.weight = 1;
isBaseline.attribute = 'timepointType';
isBaseline.constraint = {
equals: {
value: 'baseline'
}
};
proto.addProtocolMatchingRule(isBaseline);
const oneByOne = new HP.ViewportStructure('grid', {
rows: 1,
columns: 1
});
// Stage 1
const single = new HP.Viewport();
const baseline = new HP.StudyMatchingRule(true);
baseline.required = true;
baseline.attribute = 'timepointType';
baseline.constraint = {
equals: {
value: 'baseline'
}
};
single.studyMatchingRules.push(baseline);
const first = new HP.Stage(oneByOne, 'oneByOne');
first.viewports.push(single);
proto.addStage(first);
HP.lesionTrackerBaselineProtocol = proto;
HP.lesionTrackerBaselineProtocol.id = 'lesionTrackerBaselineProtocol';
//------------------------------------------------------------------------------
// Define Followup Protocol
const protoFollowup = new HP.Protocol('LT_BaselineFollowup');
protoFollowup.locked = true;
const isFollowup = new HP.ProtocolMatchingRule();
isFollowup.required = true;
isFollowup.weight = 2;
isFollowup.attribute = 'timepointType';
isFollowup.constraint = {
equals: {
value: 'followup'
}
};
protoFollowup.addProtocolMatchingRule(isFollowup);
const oneByTwo = new HP.ViewportStructure('grid', {
rows: 1,
columns: 2
});
// Stage 1
const left = new HP.Viewport();
const right = new HP.Viewport();
const baseline2 = new HP.StudyMatchingRule(true);
baseline2.required = true;
baseline2.attribute = 'timepointType';
baseline2.constraint = {
equals: {
value: 'baseline'
}
};
const followup = new HP.StudyMatchingRule();
followup.required = true;
followup.attribute = 'timepointType';
followup.constraint = {
equals: {
value: 'followup'
}
};
left.studyMatchingRules.push(followup);
right.studyMatchingRules.push(baseline2);
const first2 = new HP.Stage(oneByTwo, 'oneByTwo');
first2.viewports.push(left);
first2.viewports.push(right);
protoFollowup.addStage(first2);
HP.lesionTrackerFollowupProtocol = protoFollowup;
HP.lesionTrackerFollowupProtocol.id = 'lesionTrackerFollowupProtocol';
HP.ProtocolStore.onReady(() => {
console.log('Inserting lesion tracker protocols');
HP.ProtocolStore.addProtocol(HP.lesionTrackerBaselineProtocol);
HP.ProtocolStore.addProtocol(HP.lesionTrackerFollowupProtocol);
});
});
@@ -1,53 +0,0 @@
import { Meteor } from 'meteor/meteor';
import { _ } from 'meteor/underscore';
import { OHIF } from 'meteor/ohif:core';
Meteor.startup(() => {
const { toolManager } = OHIF.viewerbase;
const contextName = 'viewer';
// Enable the custom tools
const customTools = [{
id: 'bidirectional',
name: 'Target'
}, {
id: 'nonTarget',
name: 'Non-Target'
}, {
id: 'targetCR',
name: 'CR Target'
}, {
id: 'targetUN',
name: 'UN Target'
}];
customTools.forEach(tool => {
_.defaults(OHIF.hotkeys.defaults[contextName], { [tool.id]: '' });
OHIF.commands.register(contextName, tool.id, {
name: tool.name,
action: tool.action || (() => toolManager.setActiveTool(tool.id))
});
});
// Enable the custom commands
const customCommands = [{
id: 'linkStackScroll',
name: 'Link',
action: OHIF.viewerbase.viewportUtils.linkStackScroll
}, {
id: 'saveMeasurements',
name: 'Save measurements',
hotkey: 'CTRL+S',
action() {
const activeTimepoint = OHIF.measurements.getActiveTimepoint();
if (!activeTimepoint) return;
OHIF.measurements.saveMeasurements(OHIF.viewer.measurementApi, activeTimepoint.timepointId);
}
}];
customCommands.forEach(command => {
_.defaults(OHIF.hotkeys.defaults[contextName], { [command.id]: command.hotkey || '' });
OHIF.commands.register(contextName, command.id, {
name: command.name,
action: command.action || (() => toolManager.setActiveTool(command.id))
});
});
});
-3
View File
@@ -1,3 +0,0 @@
import loglevel from 'loglevel';
log = loglevel.getLogger('OHIFViewer');
log.setLevel('info');
-62
View File
@@ -1,62 +0,0 @@
import { Meteor } from 'meteor/meteor';
import { Router } from 'meteor/iron:router';
import { OHIF } from 'meteor/ohif:core';
Router.configure({
layoutTemplate: 'layout',
loadingTemplate: 'layout'
});
Router.onBeforeAction('loading');
Router.onBeforeAction(function() {
// verifyEmail controls whether emailVerification template will be rendered or not
const publicSettings = Meteor.settings && Meteor.settings.public;
const verifyEmail = publicSettings && publicSettings.verifyEmail || false;
// Check if user is signed in or needs an email verification
if (!Meteor.userId() && !Meteor.loggingIn()) {
this.render('entrySignIn');
} else if (verifyEmail && Meteor.user().emails && !Meteor.user().emails[0].verified) {
this.render('emailVerification');
} else {
this.next();
}
}, {
except: ['entrySignIn', 'entrySignUp', 'forgotPassword', 'resetPassword', 'emailVerification']
});
Router.route('/', function() {
Router.go('studylist', {}, { replaceState: true });
}, { name: 'home' });
Router.route('/studylist', {
name: 'studylist',
onBeforeAction: function() {
const next = this.next;
// Retrieve the timepoints data to display in studylist
const promise = OHIF.studylist.timepointApi.retrieveTimepoints({});
promise.then(() => next());
},
action: function() {
this.render('app', { data: { template: 'studylist' } });
}
});
Router.route('/viewer/timepoints/:timepointId', function() {
const timepointId = this.params.timepointId;
OHIF.viewerbase.renderViewer(this, { timepointId });
}, { name: 'viewerTimepoint' });
Router.route('/viewer/studies/:studyInstanceUids', function() {
const studyInstanceUids = this.params.studyInstanceUids.split(';');
OHIF.viewerbase.renderViewer(this, { studyInstanceUids });
}, { name: 'viewerStudies' });
// OHIF #98 Show specific series of study
Router.route('/study/:studyInstanceUid/series/:seriesInstanceUids', function () {
const studyInstanceUid = this.params.studyInstanceUid;
const seriesInstanceUids = this.params.seriesInstanceUids.split(';');
OHIF.viewerbase.renderViewer(this, { studyInstanceUids: [studyInstanceUid], seriesInstanceUids });
}, { name: 'viewerSeries' });
-38
View File
@@ -1,38 +0,0 @@
{
"name": "LesionTracker",
"private": true,
"scripts": {
"lint": "eslint .",
"fix": "eslint --fix .",
"pretest": "npm run lint --silent"
},
"version": "1.0.0",
"description": "",
"dependencies": {
"babel-runtime": "^6.23.0",
"bcrypt": "^0.8.7",
"loglevel": "^1.4.1",
"meteor-node-stubs": "^0.2.3"
},
"devDependencies": {
"babel-eslint": "^6.1.2",
"eslint": "^3.7.0",
"eslint-config-airbnb": "^12.0.0",
"eslint-import-resolver-meteor": "^0.3.3",
"eslint-plugin-import": "^1.16.0",
"eslint-plugin-jsx-a11y": "^2.2.2",
"eslint-plugin-meteor": "^4.0.0",
"eslint-plugin-react": "^6.3.0"
},
"main": "index.js",
"repository": {
"type": "git",
"url": "https://github.com/OHIF/Viewers.git"
},
"author": "OHIF",
"license": "MIT",
"bugs": {
"url": "https://github.com/OHIF/Viewers/issues"
},
"homepage": "https://github.com/OHIF/Viewers"
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

-1
View File
@@ -1 +0,0 @@
starrynight run-tests --framework gagarin --debug --verbose --webdriver http://localhost:9515 --path ../Packages/*/tests/gagarin/**/*.js
-1
View File
@@ -1 +0,0 @@
starrynight run-tests --framework nightwatch
-52
View File
@@ -1,52 +0,0 @@
import { OHIF } from 'meteor/ohif:core';
Meteor.startup(function () {
// Mail server settings
var username = Meteor.settings && Meteor.settings.mailServerSettings && Meteor.settings.mailServerSettings.username || null;
var password = Meteor.settings && Meteor.settings.mailServerSettings && Meteor.settings.mailServerSettings.password || null;
var server = Meteor.settings && Meteor.settings.mailServerSettings && Meteor.settings.mailServerSettings.server || null;
var port = Meteor.settings && Meteor.settings.mailServerSettings && Meteor.settings.mailServerSettings.port || null;
var verifyEmail = Meteor.settings && Meteor.settings.public && Meteor.settings.public.verifyEmail || false;
var siteName = Meteor.settings && Meteor.settings.public && Meteor.settings.public.siteName || "Lesion Tracker";
if (username && password && server && port) {
Accounts.emailTemplates.siteName = siteName;
Accounts.emailTemplates.from = siteName+' Admin <'+username+'>';
process.env.MAIL_URL = 'smtp://' +
encodeURIComponent(username) + ':' +
encodeURIComponent(password) + '@' +
encodeURIComponent(server) + ':' + port;
// Subject line of the email.
Accounts.emailTemplates.verifyEmail.subject = function(user) {
return 'Confirm Your Email Address for '+siteName;
};
// Email text
Accounts.emailTemplates.verifyEmail.text = function(user, url) {
return 'Thank you for registering. Please click on the following link to verify your email address: \r\n' + url;
};
// Reset password mail
Accounts.emailTemplates.resetPassword.subject = function() {
return 'Reset your '+siteName+' password'
};
Accounts.urls.resetPassword = function(token) {
return OHIF.utils.absoluteUrl('resetPassword/' + token);
};
Accounts.emailTemplates.resetPassword.text = function(user, url) {
return "Hello " + user.profile.fullName + ",\n\n" +
"Click the following link to set your new password:\n" +
url + "\n\n";
};
// Send email when account is created
Accounts.config({
sendVerificationEmail: verifyEmail
});
}
});
@@ -1 +0,0 @@
reports
@@ -1,4 +0,0 @@
exports.assertion = function() {
return this; // allows the command to be chained.
};
@@ -1,4 +0,0 @@
exports.command = function() {
return this;
};
@@ -1,15 +0,0 @@
exports.command = function(username, password) {
this
.waitForElementVisible('#entrySignIn', 1000)
.verify.elementPresent("#signInPageTitle")
.verify.elementPresent("#signInPageMessage")
.verify.elementPresent("#signInPageEmailInput")
.verify.elementPresent("#signInPagePasswordInput")
.verify.elementPresent("#signInToAppButton")
.verify.elementPresent("#needAnAccountButton")
.verify.containsText("#signInPageTitle", "Sign In")
.verify.containsText("#signInPageMessage", "Improve your clincal practice with checklists.")
return this; // allows the command to be chained.
};
@@ -1,11 +0,0 @@
exports.command = function(username, password) {
this
.waitForElementVisible('#entrySignUp', 1000)
.verify.elementPresent("#signUpPageEmailInput")
.verify.elementPresent("#signUpPagePasswordInput")
.verify.elementPresent("#signUpPagePasswordConfirmInput")
.verify.elementPresent("#signUpPageJoinNowButton")
return this; // allows the command to be chained.
};
@@ -1,14 +0,0 @@
exports.command = function(username, password) {
this
.waitForElementVisible('#entrySignIn', 1000)
.verify.elementPresent("#signInPageEmailInput")
.verify.elementPresent("#signInPagePasswordInput")
.setValue("#signInPageEmailInput", username)
.setValue("#signInPagePasswordInput", password)
.click("#signInToAppButton").pause(1000)
return this; // allows the command to be chained.
};
@@ -1,8 +0,0 @@
exports.command = function(email, password) {
this
.verify.elementPresent("#logoutButton")
.click("#logoutButton").pause(500)
return this; // allows the command to be chained.
};
@@ -1,23 +0,0 @@
exports.command = function(email, password) {
this
.waitForElementVisible('#entrySignUp', 1000)
.verify.elementPresent("#signUpPageEmailInput")
.verify.elementPresent("#signUpPagePasswordInput")
.verify.elementPresent("#signUpPagePasswordConfirmInput")
.clearValue("#signUpPageEmailInput")
.clearValue("#signUpPagePasswordInput")
.clearValue("#signUpPagePasswordConfirmInput")
// .setValue("#signUpPageUsernameInput", "Jane Doe")
.setValue("#signUpPageEmailInput", email)
.setValue("#signUpPagePasswordInput", password)
.setValue("#signUpPagePasswordConfirmInput", password)
.click("#signUpPageJoinNowButton").pause(200)
return this; // allows the command to be chained.
};
@@ -1,21 +0,0 @@
// async version calls method on the server
exports.command = function(methodName, timeout) {
var client = this;
if (!timeout) {
timeout = 5000;
}
this
.timeoutsAsyncScript(timeout)
.executeAsync(function(data, meteorCallback){
//return HipaaLogger.logEventObject(data);
Meteor.call(methodName, data, function(meteorError, meteorResult){
var response = (meteorError ? { error: meteorError } : { result: meteorResult });
meteorCallback(response);
})
}, [hipaaEvent], function(result){
console.log("result.value", result.value);
client.assert.ok(result.value);
}).pause(1000)
return this;
};
@@ -1,40 +0,0 @@
/*exports.command = function(sessionName, expectedValue, timeout, callback) {
var self = this;
if (!timeout) {
timeout = 5000;
}
var glassOpacity = false;
this
.timeoutsAsyncScript(timeout)
.executeAsync(function (data, callback) {
return Session.get('glassOpacity');
}, [''], function (response) { // you need to pass an ARRAY of ONE argument, must be a bug
if (response.value.error) {
throw 'Meteor apply (call) returned an error: ' + response.value.error;
} else if (typeof callback === 'function') {
callback.call(self);
}
})
return this;
};*/
// syncrhonous version; only works for checking javascript objects on client
exports.command = function(sessionVarName, expectedValue) {
var client = this;
this
.execute(function(data){
return Session.get(data);
}, [sessionVarName], function(result){
client.assert.ok(result.value);
if(expectedValue){
client.assert.equal(result.value, expectedValue);
}
}).pause(1000)
return this;
};
@@ -1,10 +0,0 @@
exports.command = function(username, password) {
this
.verify.elementPresent("#appBody")
.verify.elementPresent("#navbarHeader")
.verify.elementPresent("#contentContainer")
.verify.elementPresent("#contentContainer .content-scrollable")
.verify.elementPresent("#navbarFooter")
return this; // allows the command to be chained.
};
@@ -1,22 +0,0 @@
// async version calls method on the server
exports.command = function(methodName, timeout) {
/*var client = this;
if (!timeout) {
timeout = 5000;
}
this
.timeoutsAsyncScript(timeout)
.executeAsync(function(data, meteorCallback){
//return HipaaLogger.logEventObject(data);
Meteor.call(methodName, data, function(meteorError, meteorResult){
var response = (meteorError ? { error: meteorError } : { result: meteorResult });
meteorCallback(response);
})
}, [hipaaEvent], function(result){
console.log("result.value", result.value);
client.assert.ok(result.value);
}).pause(1000)
return this;*/
return this;
};
@@ -1,9 +0,0 @@
exports.command = function(input, callback) {
this
.frame(null)
.waitForElementVisible("body", 1000, "=============================================================")
.verify.elementPresent("body", "== " + input)
return this; // allows the command to be chained.
};
@@ -1,7 +0,0 @@
exports.command = function(pageId) {
this
.waitForElementVisible(pageId, 3000)
return this; // allows the command to be chained.
};
@@ -1,8 +0,0 @@
{
"default" : {
"myGlobal" : 1
},
"test_env" : {
"myGlobal" : 2
}
}
@@ -1 +0,0 @@
hh:mm:ss.sss INFO - Initializing debug log
@@ -1,34 +0,0 @@
//var Utils = require('lib/util/utils.js');
module.exports = {
testTrue: function(client){
client.assert.equal(true, true);
}
/*testFormatElapsedTime : function(client) {
var test = client.assert;
var resultMs = Utils.formatElapsedTime(999);
var resultSec = Utils.formatElapsedTime(1999);
var resultMin = Utils.formatElapsedTime(122299, true);
test.equal(resultMs, '999ms');
test.equal(resultSec, '1.999s');
test.equal(resultMin, '2m 2s / 122299ms');
},
testMakeFnAsync : function(client) {
function asynFn(done) {
done();
}
function syncFn() {}
var test = client.assert;
test.equal(Utils.makeFnAsync(1, asynFn), asynFn);
var convertedFn = Utils.makeFnAsync(1, syncFn);
convertedFn(function() {
test.ok('converted fn called');
});
}*/
};
@@ -1,14 +0,0 @@
// add tests to this file using the Nightwatch.js API
// http://nightwatchjs.org/api
module.exports = {
"Layout & Static Pages" : function (client) {
client
.url("http://localhost:3000")
.resizeWindow(1024, 768)
.verify.elementPresent("body")
.end();
}
};
-4
View File
@@ -1,4 +0,0 @@
.idea
.meteor/local
.meteor/meteorite
node_modules
-19
View File
@@ -1,19 +0,0 @@
# This file contains information which helps Meteor properly upgrade your
# app when you run 'meteor update'. You should check it into version control
# with your project.
notices-for-0.9.0
notices-for-0.9.1
0.9.4-platform-file
notices-for-facebook-graph-api-2
1.2.0-standard-minifiers-package
1.2.0-meteor-platform-split
1.2.0-cordova-changes
1.2.0-breaking-changes
1.3.0-split-minifiers-package
1.3.5-remove-old-dev-bundle-link
1.4.0-remove-old-dev-bundle-link
1.4.1-add-shell-server-package
1.4.3-split-account-service-packages
1.5-add-dynamic-import-package
1.7-split-underscore-from-meteor-base
-2
View File
@@ -1,2 +0,0 @@
dev_bundle
local
-7
View File
@@ -1,7 +0,0 @@
# This file contains a token that is unique to your project.
# Check it into your repository along with the rest of this directory.
# It can be used for purposes such as:
# - ensuring you don't accidentally deploy one app on top of another
# - providing package authors with aggregated statistics
1jfkhvr1ljfqodmpn32m
-55
View File
@@ -1,55 +0,0 @@
# Meteor packages used by this project, one per line.
# Check this file (and the other files in this directory) into your repository.
#
# 'meteor add' and 'meteor remove' will edit this file for you,
# but you can also edit it by hand.
http@1.4.1
promise@0.11.1
stylus@2.513.13
meteor-base@1.4.0
mobile-experience@1.0.5
mongo@1.5.0
blaze-html-templates@1.0.4
session@1.1.7
jquery@1.11.10
tracker@1.2.0
logging@1.1.20
reload@1.2.0
random@1.1.0
ejson@1.1.0
spacebars@1.0.12
check@1.3.1
ecmascript@0.11.1
reactive-var@1.0.11
reactive-dict@1.2.0
standard-minifier-css@1.4.1
standard-minifier-js@2.3.4
# OHIF Packages
ohif:polyfill
ohif:design
ohif:core
ohif:commands
ohif:hotkeys
ohif:header
ohif:cornerstone
ohif:cornerstone-settings
ohif:viewerbase
ohif:study-list
ohif:dicom-services
ohif:hanging-protocols
ohif:metadata
twbs:bootstrap
fortawesome:fontawesome
momentjs:moment@2.15.1
aldeed:simple-schema # Third party package to deal with schemas
aldeed:template-extension
gilbertwat:bootstrap3-daterangepicker
johdirr:meteor-git-rev
cultofcoders:persistent-session
shell-server@0.3.1
underscore
meteortesting:mocha
-2
View File
@@ -1,2 +0,0 @@
server
browser
-1
View File
@@ -1 +0,0 @@
METEOR@1.7.0.3
-137
View File
@@ -1,137 +0,0 @@
accounts-base@1.4.2
aldeed:collection2@2.10.0
aldeed:collection2-core@1.2.0
aldeed:schema-deny@1.1.0
aldeed:schema-index@1.1.1
aldeed:simple-schema@1.5.4
aldeed:template-extension@4.1.0
allow-deny@1.1.0
amplify@1.0.0
autoupdate@1.4.1
babel-compiler@7.1.1
babel-runtime@1.2.2
base64@1.0.11
binary-heap@1.0.10
blaze@2.3.2
blaze-html-templates@1.1.2
blaze-tools@1.0.10
boilerplate-generator@1.5.0
caching-compiler@1.1.12
caching-html-compiler@1.1.3
callback-hook@1.1.0
check@1.3.1
cultofcoders:persistent-session@0.4.5
dangrossman:bootstrap-daterangepicker@2.1.13
ddp@1.4.0
ddp-client@2.3.3
ddp-common@1.4.0
ddp-rate-limiter@1.0.7
ddp-server@2.2.0
deps@1.0.12
diff-sequence@1.1.0
dynamic-import@0.4.1
ecmascript@0.11.1
ecmascript-runtime@0.7.0
ecmascript-runtime-client@0.7.1
ecmascript-runtime-server@0.7.0
ejson@1.1.0
es5-shim@4.8.0
fastclick@1.0.13
fortawesome:fontawesome@4.7.0
geojson-utils@1.0.10
gilbertwat:bootstrap3-daterangepicker@1.3.21_1
hot-code-push@1.0.4
html-tools@1.0.11
htmljs@1.0.11
http@1.4.1
id-map@1.1.0
iron:controller@1.0.12
iron:core@1.0.11
iron:dynamic-template@1.0.12
iron:layout@1.0.12
iron:location@1.0.11
iron:middleware-stack@1.1.0
iron:router@1.0.13
iron:url@1.0.11
johdirr:meteor-git-rev@0.0.4
jquery@1.11.11
launch-screen@1.1.1
livedata@1.0.18
lmieulet:meteor-coverage@1.1.4
localstorage@1.2.0
logging@1.1.20
mdg:validation-error@0.5.1
meteor@1.9.0
meteor-base@1.4.0
meteor-platform@1.2.6
meteorhacks:picker@1.0.3
meteortesting:browser-tests@1.0.0
meteortesting:mocha@1.0.0
minifier-css@1.3.1
minifier-js@2.3.5
minimongo@1.4.4
mobile-experience@1.0.5
mobile-status-bar@1.0.14
modern-browsers@0.1.1
modules@0.12.1
modules-runtime@0.10.2
momentjs:moment@2.22.2
mongo@1.5.1
mongo-dev-server@1.1.0
mongo-id@1.0.7
natestrauser:select2@4.0.3
npm-mongo@3.0.7
observe-sequence@1.0.16
ohif:commands@0.0.1
ohif:core@0.0.1
ohif:cornerstone@0.0.1
ohif:cornerstone-settings@0.0.1
ohif:design@0.0.1
ohif:dicom-services@0.0.1
ohif:hanging-protocols@0.0.1
ohif:header@0.0.1
ohif:hotkeys@0.0.1
ohif:log@0.0.1
ohif:metadata@0.0.1
ohif:polyfill@0.0.1
ohif:servers@0.0.1
ohif:studies@0.0.1
ohif:study-list@0.0.1
ohif:themes@0.0.1
ohif:themes-common@0.0.1
ohif:viewerbase@0.0.1
ohif:wadoproxy@0.0.1
ordered-dict@1.1.0
practicalmeteor:mocha-core@1.0.1
promise@0.11.1
raix:eventemitter@0.1.3
random@1.1.0
rate-limit@1.0.9
reactive-dict@1.2.0
reactive-var@1.0.11
reload@1.2.0
retry@1.1.0
routepolicy@1.0.13
service-configuration@1.0.11
session@1.1.7
shell-server@0.3.1
silentcicero:jszip@0.0.4
socket-stream-client@0.2.2
spacebars@1.0.15
spacebars-compiler@1.1.3
standard-app-packages@1.0.9
standard-minifier-css@1.4.1
standard-minifier-js@2.3.4
stylus@2.513.14
templating@1.3.2
templating-compiler@1.3.3
templating-runtime@1.3.2
templating-tools@1.1.2
tracker@1.2.0
twbs:bootstrap@3.3.6
ui@1.0.13
underscore@1.0.10
url@1.2.0
validatejs@0.0.1
webapp@1.6.2
webapp-hashing@1.0.9
-2
View File
@@ -1,2 +0,0 @@
set METEOR_PACKAGE_DIRS=..\Packages
meteor --settings ../config/medkenOrthanc.json
-1
View File
@@ -1 +0,0 @@
METEOR_PACKAGE_DIRS="../Packages" meteor --settings ../config/medkenOrthanc.json
-13
View File
@@ -1,13 +0,0 @@
#!/bin/bash
declare config='../config/orthancDICOMWeb.json'
if [ $# -gt 0 ]; then
if [ "$1" = '--dimse' ]; then
config="${config%/*}/orthancDIMSE.json"
[ -f "$config" ] && echo "DIMSE config file selected: $config"
fi
fi
echo 'Starting Meteor server...'
METEOR_PACKAGE_DIRS="../Packages" meteor --settings "$config"
-2
View File
@@ -1,2 +0,0 @@
set METEOR_PACKAGE_DIRS=..\Packages
meteor --settings ../config/orthancDICOMWeb.json
-2
View File
@@ -1,2 +0,0 @@
echo "Starting Meteor server..."
METEOR_PACKAGE_DIRS="../Packages" meteor --settings ../config/orthancDICOMWeb.json
-2
View File
@@ -1,2 +0,0 @@
echo "Starting Meteor server..."
METEOR_PACKAGE_DIRS="../Packages" meteor --settings ../config/publicOrthancDICOMWeb.json
-40
View File
@@ -1,40 +0,0 @@
#!/bin/bash
##################################################
# Runs the packages tests
##################################################
# check execution arguments
while [ "$1" != "" ]; do
PARAM=`echo $1 | awk -F= '{print $1}'`
case $PARAM in
-c | --coverage)
export RUN_COVERAGE=1
;;
-v | --verbose)
export COVERAGE_VERBOSE=1
;;
-s | --spacejam)
export RUN_SPACEJAM=1
;;
*)
esac
shift
done
if [ "$RUN_COVERAGE" == 1 ];
then
# Setting coverage variables
app_folder=$(pwd)
app_folder+="/packages/ohif-viewerbase/"
export COVERAGE_APP_FOLDER=$app_folder
export COVERAGE=1
echo 'Running meteor-coverage'
fi
if [ "$RUN_SPACEJAM" == 1 ];
then
spacejam-mocha ./packages/ohif-viewerbase/
else
meteor test-packages --driver-package='cultofcoders:mocha' ./packages/ohif-viewerbase/
fi
@@ -1,13 +0,0 @@
<template name="flexboxLayout">
<div class="viewerSection">
<div class="sidebarMenu sidebar-left {{#if leftSidebarOpen}}sidebar-open{{/if}}">
{{> studyBrowser (clone this)}}
</div>
<div class="mainContent {{#if leftSidebarOpen}}sidebar-left-open{{/if}} {{#if rightSidebarOpen}}sidebar-right-open{{/if}}">
{{> viewerMain (clone this)}}
</div>
<div class="sidebarMenu sidebar-right {{#if rightSidebarOpen}}sidebar-open{{/if}}">
{{> protocolEditor (clone this)}}
</div>
</div>
</template>
@@ -1,19 +0,0 @@
Template.flexboxLayout.events({
'transitionend .sidebarMenu'(event) {
if (!event.target.classList.contains('sidebarMenu')) {
return;
}
window.ResizeViewportManager.handleResize();
}
});
Template.flexboxLayout.helpers({
leftSidebarOpen() {
return Template.instance().data.state.get('leftSidebar');
},
rightSidebarOpen() {
return Template.instance().data.state.get('rightSidebar');
}
});
@@ -1,69 +0,0 @@
@require '{ohif:design}/app'
$lesionsSidebarMenuWidth = 450px
.viewerSection
display: flex
flex: 1
flex-flow: row nowrap
align-items: stretch
height: 'calc(100% - %s)' % ($toolbarHeight + $topBarHeight)
width: 100%
.sidebarMenu
height: 100%
// required transformation to make inner fixed elements relative to this one
transform(scale(1))
transition($sidebarTransition)
.sidebar-option
height: 100%
max-width: inherit
position: absolute
transform(translateX(100%))
transition($sidebarTransition)
width: 100%
&.active
transform(translateX(0%))
.sidebar-left
theme('border-right', '%s solid $uiBorderColor' % $uiBorderThickness)
flex: 1
margin-left: - $studiesSidebarMenuWidth
max-width: $studiesSidebarMenuWidth
order: 1
&.sidebar-open
margin-left: 0
.mainContent
flex: 1
height: 100%
order: 2
overflow: hidden
transition($sidebarTransition)
width: 100%
.sidebar-right
flex: 1
margin-right: - $lesionsSidebarMenuWidth
max-width: $lesionsSidebarMenuWidth
order: 3
position: relative
&[data-timepoints="3"]
margin-right: - ($lesionsSidebarMenuWidth + 135.5px)
max-width: $lesionsSidebarMenuWidth + 135.5px
&[data-timepoints="4"]
margin-right: - ($lesionsSidebarMenuWidth + 270px)
max-width: $lesionsSidebarMenuWidth + 270px
&.sidebar-open
margin-right: 0
.studiesListedChanger
theme('border-bottom', '%s solid $uiBorderColor' % $uiBorderThickness)
padding: 20px 10px
text-align: center
@@ -1,25 +0,0 @@
<template name="ohifViewer">
{{#header brandHref='http://ohif.org' headerClasses=instance.headerClasses}}
{{#section 'brand'}}
<svg class="logo-image">
<use xlink:href={{absoluteUrl "packages/ohif_viewerbase/assets/icons.svg#icon-ohif-logo"}}></use>
</svg>
<div class="logo-text">Open Health Imaging Foundation</div>
{{/section}}
{{#section 'headerAfterBrand'}}
{{#if studyListToggleText}}
<a href="#" class="btn studyListLinkSection pull-left js-toggle-studyList">
{{studyListToggleText}}
</a>
{{/if}}
{{/section}}
{{#section 'headerMenu'}}
<span class="header-options pull-left m-r-1">Options</span>
<div class="menu-toggle pull-right">
<span class="caret-down"></span>
</div>
{{/section}}
{{/header}}
{{>Template.dynamic template=(choose this.template 'studylist') data=this}}
</template>
@@ -1,78 +0,0 @@
import { Template } from 'meteor/templating';
import { Session } from 'meteor/session';
import { Router } from 'meteor/iron:router';
import { ReactiveVar } from 'meteor/reactive-var';
import { OHIF } from 'meteor/ohif:core';
Template.ohifViewer.onCreated(() => {
const instance = Template.instance();
instance.headerClasses = new ReactiveVar('');
OHIF.header.dropdown.setItems([{
action: () => OHIF.ui.showDialog('serverInformationModal'),
text: 'Server Information',
icon: 'fa fa-server fa-lg',
separatorAfter: true
}, {
action: () => OHIF.ui.showDialog('themeSelectorModal'),
text: 'Themes',
iconClasses: 'theme',
iconSvgUse: 'packages/ohif_viewerbase/assets/icons.svg#theme',
separatorAfter: false
}, {
action: () => OHIF.ui.showDialog('userPreferencesDialog'),
text: 'Preferences',
icon: 'fa fa-user',
separatorAfter: true
}, {
action: () => OHIF.ui.showDialog('aboutModal'),
text: 'About',
icon: 'fa fa-info'
}]);
instance.autorun(() => {
const currentRoute = Router.current();
if (!currentRoute) return;
const routeName = currentRoute.route.getName();
const isViewer = routeName.indexOf('viewer') === 0;
// Add or remove the strech class from body
$(document.body)[isViewer ? 'addClass' : 'removeClass']('stretch');
// Set the header on its bigger version if the viewer is not opened
instance.headerClasses.set(isViewer ? '' : 'header-big');
// Set the viewer open state on session
Session.set('ViewerOpened', isViewer);
});
});
Template.ohifViewer.events({
'click .js-toggle-studyList'(event, instance) {
event.preventDefault();
const isViewer = Session.get('ViewerOpened');
if (isViewer) {
Router.go('studylist');
} else {
const { studyInstanceUids } = OHIF.viewer.data;
if (studyInstanceUids) {
Router.go('viewerStudies', { studyInstanceUids });
}
}
}
});
Template.ohifViewer.helpers({
studyListToggleText() {
const instance = Template.instance();
const isViewer = Session.get('ViewerOpened');
if (isViewer) {
instance.hasViewerData = true;
return 'Study list';
}
return instance.hasViewerData ? 'Back to viewer' : '';
}
});
@@ -1,76 +0,0 @@
@import "{ohif:design}/app"
body>.header
.brand
height: 30px
display: inline-block
text-decoration: none
.logo-image
display: inline-block
fill: transparent
float: left
height: 100%
margin: 0 8px 0 0
width: 30px
.logo-text
display: inline-block
font-family: $logoFontFamily
font-size: 14px
font-weight: $logoFontWeight
theme('color', '$textPrimaryColor')
line-height: 30px
a.header-menu
theme('color', '$textPrimaryColor')
.header-options
font-size: 13px
.menu-toggle
display: inline-block
height: 18px
.btn
theme('color', '$textSecondaryColor')
cursor: pointer
font-size: 13px
font-weight: 500
line-height: 26px
&:hover
theme('color', '$hoverColor')
&:active
theme('color', '$activeColor')
.studyListLinkSection
theme('border-left', '%s solid $uiBorderColor' % $uiBorderThickness)
margin: 3px 0 0 10px
padding: 0 0 0 10px
&.header-big
padding-left: $studyListPadding
padding-right: $studyListPadding
.brand
height: 100%
width: 80%
line-height: $topBarExpandedHeight - 10px
.logo-image
margin: 0 20px 0 0
width: 50px
.logo-text
font-size: 30px
.studyListLinkSection
border: none
left: 0
margin: 0
padding: 0
position: absolute
top: 0
@@ -1,16 +0,0 @@
<template name="toolbarSection">
<div class="toolbarSection noselect p-x-2">
<div class="clearfix">
<div class="pull-left m-t-1">
{{>roundedButtonGroup leftSidebarToggleButtonData}}
</div>
{{>toolbarSectionTools toolbarButtons=toolbarButtons}}
<div class="pull-right m-t-1 rm-x-1">
{{>roundedButtonGroup rightSidebarToggleButtonData}}
</div>
<div class="pull-right">
{{>toolbarSectionTools toolbarButtons=hangingProtocolButtons}}
</div>
</div>
</div>
</template>
@@ -1,306 +0,0 @@
import { Template } from 'meteor/templating';
import { $ } from 'meteor/jquery';
import { OHIF } from 'meteor/ohif:core';
import 'meteor/ohif:viewerbase';
function isThereSeries(studies) {
if (studies.length === 1) {
const study = studies[0];
if (study.seriesList && study.seriesList.length > 1) {
return true;
}
if (study.displaySets && study.displaySets.length > 1) {
return true;
}
}
return false;
}
Template.toolbarSection.onCreated(() => {
const instance = Template.instance();
if (OHIF.uiSettings.leftSidebarOpen && isThereSeries(instance.data.studies)) {
instance.data.state.set('leftSidebar', 'studies');
}
});
Template.toolbarSection.helpers({
leftSidebarToggleButtonData() {
const instance = Template.instance();
return {
toggleable: true,
key: 'leftSidebar',
value: instance.data.state,
options: [{
value: 'studies',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-studies',
svgWidth: 15,
svgHeight: 13,
bottomLabel: 'Series'
}]
};
},
rightSidebarToggleButtonData() {
const instance = Template.instance();
return {
toggleable: true,
key: 'rightSidebar',
value: instance.data.state,
options: [{
value: 'hangingprotocols',
iconClasses: 'fa fa-cog',
bottomLabel: 'Hanging'
}]
};
},
toolbarButtons() {
const extraTools = [];
extraTools.push({
id: 'crosshairs',
title: 'Crosshairs',
classes: 'imageViewerTool',
iconClasses: 'fa fa-crosshairs'
});
extraTools.push({
id: 'magnify',
title: 'Magnify',
classes: 'imageViewerTool toolbarSectionButton',
iconClasses: 'fa fa-circle'
});
extraTools.push({
id: 'wwwcRegion',
title: 'ROI Window',
classes: 'imageViewerTool',
iconClasses: 'fa fa-square'
});
extraTools.push({
id: 'dragProbe',
title: 'Probe',
classes: 'imageViewerTool',
iconClasses: 'fa fa-dot-circle-o'
});
extraTools.push({
id: 'ellipticalRoi',
title: 'Ellipse',
classes: 'imageViewerTool',
iconClasses: 'fa fa-circle-o'
});
extraTools.push({
id: 'rectangleRoi',
title: 'Rectangle',
classes: 'imageViewerTool',
iconClasses: 'fa fa-square-o'
});
extraTools.push({
id: 'toggleDownloadDialog',
title: 'Download',
classes: 'imageViewerCommand',
iconClasses: 'fa fa-camera',
active: () => $('#downloadDialog').is(':visible')
});
extraTools.push({
id: 'invert',
title: 'Invert',
classes: 'imageViewerCommand',
iconClasses: 'fa fa-adjust'
});
extraTools.push({
id: 'rotateR',
title: 'Rotate Right',
classes: 'imageViewerCommand',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-rotate-right'
});
extraTools.push({
id: 'flipH',
title: 'Flip H',
classes: 'imageViewerCommand',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-flip-horizontal'
});
extraTools.push({
id: 'flipV',
title: 'Flip V',
classes: 'imageViewerCommand',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-flip-vertical'
});
extraTools.push({
id: 'clearTools',
title: 'Clear',
classes: 'imageViewerCommand',
iconClasses: 'fa fa-trash'
});
const buttonData = [];
buttonData.push({
id: 'stackScroll',
title: 'Stack Scroll',
classes: 'imageViewerTool',
iconClasses: 'fa fa-bars'
});
buttonData.push({
id: 'zoom',
title: 'Zoom',
classes: 'imageViewerTool',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-zoom'
});
buttonData.push({
id: 'wwwc',
title: 'Levels',
classes: 'imageViewerTool',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-levels'
});
buttonData.push({
id: 'pan',
title: 'Pan',
classes: 'imageViewerTool',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-pan'
});
buttonData.push({
id: 'length',
title: 'Length',
classes: 'imageViewerTool toolbarSectionButton',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-measure-temp'
});
buttonData.push({
id: 'annotate',
title: 'Annotate',
classes: 'imageViewerTool',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-measure-non-target'
});
buttonData.push({
id: 'angle',
title: 'Angle',
classes: 'imageViewerTool',
iconClasses: 'fa fa-angle-left'
});
buttonData.push({
id: 'resetViewport',
title: 'Reset',
classes: 'imageViewerCommand',
iconClasses: 'fa fa-undo'
});
if (!OHIF.uiSettings.displayEchoUltrasoundWorkflow) {
buttonData.push({
id: 'previousDisplaySet',
title: 'Previous',
classes: 'imageViewerCommand',
iconClasses: 'fa fa-toggle-up fa-fw'
});
buttonData.push({
id: 'nextDisplaySet',
title: 'Next',
classes: 'imageViewerCommand',
iconClasses: 'fa fa-toggle-down fa-fw'
});
const { isPlaying } = OHIF.viewerbase.viewportUtils;
buttonData.push({
id: 'toggleCinePlay',
title: () => isPlaying() ? 'Stop' : 'Play',
classes: 'imageViewerCommand',
iconClasses: () => ('fa fa-fw ' + (isPlaying() ? 'fa-stop' : 'fa-play')),
active: isPlaying
});
buttonData.push({
id: 'toggleCineDialog',
title: 'CINE',
classes: 'imageViewerCommand',
iconClasses: 'fa fa-youtube-play',
active: () => $('#cineDialog').is(':visible')
});
}
buttonData.push({
id: 'layout',
title: 'Layout',
iconClasses: 'fa fa-th-large',
buttonTemplateName: 'layoutButton'
});
buttonData.push({
id: 'toggleMore',
title: 'More',
classes: 'rp-x-1 rm-l-3',
svgLink: '/packages/ohif_viewerbase/assets/icons.svg#icon-tools-more',
subTools: extraTools
});
return buttonData;
},
hangingProtocolButtons() {
let buttonData = [];
buttonData.push({
id: 'previousPresentationGroup',
title: 'Prev. Stage',
iconClasses: 'fa fa-step-backward',
buttonTemplateName: 'previousPresentationGroupButton'
});
buttonData.push({
id: 'nextPresentationGroup',
title: 'Next Stage',
iconClasses: 'fa fa-step-forward',
buttonTemplateName: 'nextPresentationGroupButton'
});
return buttonData;
}
});
Template.toolbarSection.onRendered(function() {
const instance = Template.instance();
instance.$('#layout').dropdown();
if (OHIF.uiSettings.displayEchoUltrasoundWorkflow) {
OHIF.viewerbase.viewportUtils.toggleCineDialog();
}
// Set disabled/enabled tool buttons that are set in toolManager
const states = OHIF.viewerbase.toolManager.getToolDefaultStates();
const disabledToolButtons = states.disabledToolButtons;
const allToolbarButtons = $('#toolbar').find('button');
if (disabledToolButtons && disabledToolButtons.length > 0) {
for (let i = 0; i < allToolbarButtons.length; i++) {
const toolbarButton = allToolbarButtons[i];
$(toolbarButton).prop('disabled', false);
const index = disabledToolButtons.indexOf($(toolbarButton).attr('id'));
if (index !== -1) {
$(toolbarButton).prop('disabled', true);
}
}
}
});
@@ -1,13 +0,0 @@
@require '{ohif:design}/app'
.toolbarSection
theme('border-bottom', '%s solid $uiBorderColor' % $uiBorderThickness)
flex: 0 0 auto
height: $toolbarHeight
padding-top: 6px
position: relative
transition(height 300ms ease)
width: 100%
&.expanded
height: $toolbarHeight + $toolbarDrawerHeight
Loaded 100 of 1748 files, more files were not shown because too many files have changed in this diff. Show more