Compare commits

...

4812 Commits

Author SHA1 Message Date
bbe37ff388 feat: annotation persistence (local storage)
Some checks failed
Build and Deploy Docs / build-and-deploy-docs (push) Has been cancelled
CodeQL Advanced / Analyze (${{ matrix.language }}) (none, actions) (push) Has been cancelled
CodeQL Advanced / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Has been cancelled
2026-07-16 10:38:36 +01:00
ohif-bot
f7612cdd0a chore(version): Update package versions to 3.13.0-beta.125 [skip ci] 2026-07-14 23:14:16 +00:00
Alireza
125a174298
fix(cli): link and unlink extensions/modes with pnpm instead of yarn (#6144) 2026-07-14 19:10:49 -04:00
ohif-bot
b880d2acf9 chore(version): Update package versions to 3.13.0-beta.124 [skip ci] 2026-07-13 16:59:27 +00:00
Dan Rukas
03e17d764a
fix(ui): clean up remaining legacy ui usage (#6140)
* Update button on DataSourceSelector

* Removed dead code ToolbarButtonNestedMenu, button spacing
2026-07-13 12:56:17 -04:00
Dan Rukas
3d70db2d3b
ui(ContextMenuViewport): move to ui-next with theme support (#6008) 2026-07-13 12:56:03 -04:00
ohif-bot
110b293aa0 chore(version): Update package versions to 3.13.0-beta.123 [skip ci] 2026-07-11 16:19:35 +00:00
Alireza
70421225d7
fix(pt): resolve Philips PET private SUV bulkdata before scaling (#6096)
* fix(pt): resolve Philips PET private SUV bulkdata before scaling

When a DICOMweb server delivers the Philips PET private tags SUVScaleFactor
(7053,1000) / ActivityConcentrationScaleFactor (7053,1009) as bulkdata, dcmjs
naturalization leaves them as { BulkDataURI } objects. These were fed verbatim
to calculate-suv, which treats the object as a valid value and silently
corrupts the SUV scaling factors.

Resolve these scalar private tags to numbers during ingestion - in both the
lazy (async) and non-lazy (sync) DICOMweb metadata paths, before INSTANCES_ADDED
fires - by decoding the bulkdata (VR-aware: DS/IS text or little-endian FL/FD).
Harden getPTImageIdInstanceMetadata to coerce values to finite numbers (reusing
@ohif/core utils.toNumber) and reject unresolved bulkdata objects so they can
never reach calculate-suv. Share the bulkdata-attach helper between both
metadata paths. Adds unit tests for the bulkdata decoder/resolver and for
getPTImageIdInstanceMetadata.

* refactor(bulkdata): move PET bulkdata resolution to a generic core tag registry

Generalize resolvePETPrivateScalarBulkData into a datasource-agnostic
utils.resolveBulkDataTags in @ohif/core, backed by a static tag registry
seeded with the Philips PET SUV/activity-concentration scalar tags and
extensible via registerResolvedBulkDataTags.

* fix(bulkdata): strip NUL padding and refresh qido auth before resolution

Address review feedback:
- decodeText now strips NUL (0x00) padding, which String.trim() leaves
  intact, so NUL-padded DS/IS values no longer decode as NaN. Adds a
  regression test.
- refresh qidoDicomWebClient.headers before resolveBulkDataTags in both
  series-metadata paths; retrieveBulkData is bound to qidoDicomWebClient,
  matching every other qido op in this file.

* fix(dicomweb): await deferred metadata storage

* fix(dicomweb): support single-part bulkdata responses
2026-07-11 12:16:32 -04:00
Alireza
3c0e245398
feat(next): native Generic Viewport migration (useNextViewports) (#6101)
* feat(core): add appConfig.useNextViewports flag (Generic Viewport M0 step 1)

Opt-in flag to drive viewports through the DIRECT native cornerstone3D
GenericViewport ("next") API surface (PLANAR_NEXT / VOLUME_3D_NEXT, setDisplaySets,
setDisplaySetPresentation, setViewState, view references) instead of the legacy
stack/volume methods.

Distinct from (and overrides) useGenericViewport, which only routes legacy
viewport types through cornerstone compatibility adapters. This flag does NOT set
cornerstone rendering.useGenericViewport; it is read by getCornerstoneViewportType
and the CornerstoneViewportService backend split (subsequent M0 steps). Defaults
false; the legacy path stays byte-identical. Opt-in only.

* feat(cornerstone): map viewport types to native *_NEXT under useNextViewports (M0 step 2)

getCornerstoneViewportType gains an optional useNextViewports param. When set,
stack/volume/orthographic collapse to PLANAR_NEXT (render path inferred from data
shape), and volume3d/video/wholeslide/ecg map to their VOLUME_3D_NEXT / VIDEO_NEXT /
WHOLE_SLIDE_NEXT / ECG_NEXT types. Defaults false → legacy mapping byte-identical;
no caller passes true yet (wired via appConfig in the service split, step 3).

Tests: +6 cases (21 total) covering the *_NEXT mapping, displaySet override, the
invalid-type throw, and that the legacy mapping is unchanged when the flag is off.

* feat(cornerstone): native-next stack mount behind useNextViewports (M0 step 3 foundation)

Wires the useNextViewports flag through and mounts stack viewports natively:
- nextViewports.ts: module accessor; init.tsx captures appConfig.useNextViewports.
- getCornerstoneViewportType: defaults the flag from the accessor, and now passes
  native (*_NEXT) types through idempotently (a viewport's stored cs type is
  re-fed into the mapper; legacy types were already idempotent, native were not).
- CornerstoneViewportService._setDisplaySets: route native generic viewports by
  data shape (StackData vs VolumeData), since PLANAR_NEXT is one type for both.
- _setStackViewport: native branch mounts via genericViewportDataSetMetadataProvider.add
  + setDisplaySets, applies VOI/colormap via setDisplaySetPresentation and
  displayArea/rotation/flip via setViewState (no legacy setStack/setProperties/setCamera).

Validated in a running OHIF (linked cornerstone 5.0.8): with the flag on, the
viewer creates a native PlanarViewport (window.cornerstone...getViewports()[0] ->
'PlanarViewport :: type=planarNext'); the prior 'Invalid viewport type: planarNext'
is resolved. Flag OFF is byte-identical (native branches gated by isGenericViewport).

KNOWN WIP (next): flag-ON full render is blocked by the presentation-read seam —
peripheral consumers (useViewportRendering, overlays, colorbar, resize) still call
legacy getProperties/getViewPresentation/getCamera on the viewport. Stack render
completes once those are routed through getDisplaySetPresentation/viewportProjection.

* feat(cornerstone): render native Generic (next) stack viewport behind useNextViewports

Makes the flag-on native PLANAR_NEXT stack render end-to-end in OHIF:

- CornerstoneCacheService: resolve the stack-vs-volume data-builder from the
  legacy mapping, since native types collapse that distinction into PLANAR_NEXT.
  Without this the stack fell through to the 'other' builder and imageIds were
  never populated (PlanarViewport threw 'No registered planar dataset metadata').
- ImageOverlayViewerTool: skip overlay rendering when the viewport has no
  resolvable view reference yet (native returns falsy until data is bound),
  instead of letting getTargetId() throw and kill the route during enable.
- Add getViewportPresentation helpers (getViewportProperties / getViewportCameraState)
  bridging legacy getProperties/getCamera and native getDisplaySetPresentation/
  getViewState; apply at the toolbar property evaluator, VOI-range init, and the
  position/LUT presentation snapshots so reads no longer throw on native viewports.

Validated in a running OHIF (flag on): PlanarViewport(planarNext), 295 slices,
image renders, zero console errors, scroll + setImageIdIndex navigate correctly.
Legacy (flag off) behavior is unchanged. Native volume/MPR is a later increment.

* feat(cornerstone): render native Generic (next) volume/MPR behind useNextViewports

Mounts volumes on a direct PLANAR_NEXT viewport for volume/MPR rendering:

- CornerstoneViewportService.setVolumesForViewport: native branch -> new
  _setNativeVolumeDisplaySets. Each base volume is registered with its
  already-cached volumeId and bound via setDisplaySets at the viewport's
  orientation (first = source, others = overlay); VOI/colormap/invert applied
  per-binding via setDisplaySetPresentation(dataId, props). Skips the legacy
  setVolumes/setProperties/setPresentations surface a PLANAR_NEXT viewport does
  not expose. Cornerstone reuses the OHIF-cached volume (getVolumeId returns the
  passed volumeId) and selects the image vs reformatted-volume render path from
  the requested orientation.
- useViewportRendering colormap resolver: read via getViewportProperties for
  native viewports (getDisplaySetPresentation) instead of getProperties/getActors,
  which threw 'Error getting viewport colormap' on native volume.

Validated in a running OHIF (flag on): axial/sagittal/coronal all render in
volume mode, scroll navigates the volume, round-trip volume<->stack switches
getCurrentMode cleanly, zero console errors. Legacy (flag off) unchanged.

* feat(cornerstone): allow setViewportOrientation on native volume viewports

The setViewportOrientation command guarded on isOrthographicViewportType, which
is false for a native PLANAR_NEXT viewport (it reports type=planarNext even when
rendering MPR). Add the content-mode capability guard (csUtils.viewportIsInVolumeMode)
so the MPR orientation toolbar works on native viewports; PlanarViewport.setOrientation
already exists. Legacy behavior is unchanged (viewportIsInVolumeMode is false for
legacy viewports, so the existing isOrthographicViewportType branch still gates them).

Also flips useNextViewports on in the dev default config for local testing of the
native path (NOT for merge; see TODO_BEFORE_MERGE).

* feat: Add temporary support for native GenericViewport ("next") migration

- Introduced a dev-only configuration flag to toggle the native viewport backend.
- Added a toolbar button to switch between legacy and native viewports for debugging.
- Implemented logic to handle image slice data and viewport type detection for native viewports.
- Enhanced viewport service to derive default VOI window/level from DICOM metadata.
- Added utility functions for managing localStorage overrides for viewport settings.
- Marked all temporary changes with comments for easy identification and removal before merging.

* Add plan viewer HTML page for migration master plan display

* feat(cornerstone): fork viewport presentation read/write into the backend (§4.3)

Extends the legacyBackend/nextBackend seam so presentation read/write is forked,
not inline-guarded in the service:

- IViewportBackend gains getPositionPresentation / setPositionPresentation /
  setLutPresentation. LegacyViewportBackend keeps the exact legacy logic
  (getViewPresentation / setProperties / setViewPresentation) byte-identical;
  NextViewportBackend uses the native surface (getViewReference + setViewReference;
  setDisplaySetPresentation for VOI/colormap/invert). WITH_ORIENTATION is inlined in
  the backends to avoid a backend->service value-import cycle.
- CornerstoneViewportService._getPositionPresentation / _setLutPresentation /
  _setPositionPresentation now delegate to this.backend. _getLutPresentation stays
  shared (already native-aware via the getViewportProperties bridge).

Effect: setPresentations is now native-safe — it previously threw on a PLANAR_NEXT
viewport (setProperties / setViewPresentation), so the native mount skipped it; the
native path now round-trips presentation cleanly. Native pan/zoom persistence
(viewPresentation is still undefined on native) is a later increment.

Validated both lanes: native PlanarViewport renders + storePresentation/getPresentations/
setPresentations round-trip with no crash; legacy StackViewport byte-identical
round-trip; zero console errors each.

* feat(cornerstone): persist native viewport pan/zoom/rotation/flip via the backend

A PLANAR_NEXT viewport has no getViewPresentation/setViewPresentation, so pan/zoom
previously did not survive navigation/resize/layout on the native path. NextViewportBackend
now snapshots the pan/zoom subset of the semantic view state and restores it:

- getPositionPresentation: snapshots the PlanarViewState pan/zoom fields (displayArea,
  anchorWorld, anchorCanvas, scale, scaleMode, rotation, flipHorizontal, flipVertical) via
  getViewState() (already deep-cloned + serializable), stored in viewPresentation. Slice and
  orientation are intentionally excluded (they ride on the view reference).
- setPositionPresentation: applies the view reference first (slice/orientation), then a partial
  setViewState patch with only the pan/zoom subset — the merge preserves slice/orientation, so
  the view reference is never clobbered. Stale displayArea is cleared when live anchor/scale
  pan/zoom is restored. anchorCanvas is canvas-fractional, so it survives resize without drift.
- _setStackViewport native branch now restores the persisted positionPresentation on mount
  (position-only; LUT already applied inline), so a returning stack recovers its camera.

Validated on native: zoom -> snapshot (scale captured) -> reset -> restore (scale back),
slice unchanged, zero errors. Legacy path unchanged. Volume/MPR mount pan/zoom restore is a
follow-up (its native mount helper does not yet thread presentations).

* feat(cornerstone): restore native volume/MPR pan/zoom on mount

Extends native pan/zoom persistence to the volume/MPR mount: the native branch of
setVolumesForViewport now restores the persisted positionPresentation (view reference
+ pan/zoom via the backend) after _setNativeVolumeDisplaySets, mirroring the stack
mount. Position-only (LUT applied per-binding above), native-safe.

Validated on a native sagittal MPR: zoom -> snapshot (scale 1.7) -> reset -> restore
(scale back to 1.7) with orientation (sagittal) and slice (256) preserved; zero errors.

* fix(next): bridge invert/flip/window-level commands for native viewports

Add setViewportProperties/setViewportCameraState write bridges alongside the
existing read bridges, and route invertViewport, flipViewportHorizontal,
flipViewportVertical and setViewportWindowLevel through them.

Direct PLANAR_NEXT viewports have no getCamera/setCamera/getProperties/
setProperties, so these four commands threw on native. The bridges dispatch on
isGenericViewport: native reads/writes via getViewState/setViewState (flip) and
getDisplaySetPresentation/setDisplaySetPresentation (invert/voiRange) on the
active binding; legacy falls through to the identical getCamera/setCamera/
getProperties/setProperties calls, so flag-off stays byte-identical.

Verified live on a native stack viewport: all four now apply (invert
undefined->true, flipH/flipV false->true, voiRange retargets) instead of
throwing.

* fix(next): apply setViewportColormap on native viewports

setViewportColormap was fully guarded by isStackViewportType/
isOrthographicViewportType, both of which report false for native PLANAR_NEXT
viewports, so the command was a silent no-op on native (returned ok but applied
nothing). Add a native branch that applies the colormap via the
setViewportProperties bridge (setDisplaySetPresentation) on the active binding,
honoring the immediate render flag, before the legacy guards.

Verified live: HSV colormap now applies and renders on a native stack viewport.

* fix(next): make ColorbarService native-safe

ColorbarService called getActors/getProperties/setProperties directly, all of
which throw on direct PLANAR_NEXT (next) viewports, so toggling a colorbar threw
on native. Replace the getActors content gate with a viewportHasContent helper
(getCurrentMode for native, getActors for legacy), and route the property
read/write through the getViewportProperties/setViewportProperties bridges.
Legacy keeps the identical getActors/getProperties/setProperties calls.

Verified live on native: addColorbar no longer throws, hasColorbar becomes true,
and the colormap applies via setDisplaySetPresentation.

* fix(next): guard per-volume histogram WL panel for native viewports

getWindowLevelsData drives the per-volume histogram WL panel via
getAllVolumeIds/getProperties, which direct PLANAR_NEXT (next) viewports do not
expose (they throw). Add an early guard that returns no rows when getAllVolumeIds
is absent, so the panel degrades to 'No window level data available' instead of
erroring on the interval/event refresh. Legacy stack viewports also lack
getAllVolumeIds and were never passed here, so this is a no-op for them; the
native stack/volume WL path is driven by setViewportWindowLevel.

* fix(next): make resetViewport/scaleViewport/rotate commands native-safe

These three command paths assumed legacy camera APIs that direct PLANAR_NEXT
(next) viewports do not expose:
- resetViewport called viewport.resetCamera() (absent on native -> threw). Native
  branch uses resetViewState() (resets pan/zoom/rotation/orientation/flip;
  navigation/slice preserved). resetProperties stays optional-chained.
- scaleViewport (scaleUpViewport/scaleDownViewport) was guarded by
  isStackViewportType, which is false for native, so the zoom buttons were a
  silent no-op. Native branch uses getZoom/setZoom; parallelScale and zoom are
  inversely related so it divides by scaleFactor to match legacy direction.
- _rotateViewport (rotateViewportCW/CCW/CWSet) used getViewPresentation/
  setViewPresentation (absent on native). Native branch reads rotation/flip via
  the getViewportCameraState bridge (getViewState) and writes the new rotation
  via setViewportCameraState (setViewState), preserving the flip-parity logic of
  the 'set' mode.

Verified live on native stack: reset no longer throws and resets zoom; zoom in
1->1.111; CW/CCW/Set rotation applies (90/180/90/90). Legacy unchanged.

* fix(next): guard jumpToMeasurement camera-centering for native viewports

jumpToMeasurement re-centers the camera when a measurement is off-screen via
isMeasurementWithinViewport (calls viewport.getCamera()) + getCamera/setCamera.
Native PLANAR_NEXT viewports have neither, so jumping to a measurement threw
'viewport.getCamera is not a function' at the gate before the centering block.

Short-circuit the centering on native (isGenericViewport) so it is skipped;
setViewReference above already navigated to the measurement's slice, so the
measurement is still reached - only in-plane re-centering is deferred.
TODO(next): port in-plane centering via the camera bridge + setViewState pan.

Verified live: native viewport has no getCamera (getCamera() throws) and
isGenericViewport is true, so the throwing branch is now skipped; setViewReference
remains available for slice navigation. Legacy unchanged.

* fix(next): make getViewportAlignmentData + updateViewport native-safe

Two CornerstoneViewportService methods called getCamera()/setCamera(), which
direct PLANAR_NEXT (next) viewports lack:
- getViewportAlignmentData looped every viewport reading getCamera().viewPlaneNormal
  (reached from findNavigationCompatibleViewportId on a cross-orientation
  jumpToMeasurement). Native reads viewPlaneNormal from getViewReference() instead
  (both backends populate it); legacy keeps getCamera (byte-identical).
- updateViewport (metadata-invalidation re-mount, keepCamera) read getCamera()
  unconditionally and had no native branch in its stack/volume if/else, so it threw
  and would not re-mount native data. Add a native branch that snapshots/restores the
  camera via the view-state bridges and routes the re-mount through _setDisplaySets
  (backend.dispatchMount, which dispatches by data shape). Legacy path unchanged.

Verified live on native: getViewportAlignmentData returns data (no throw);
updateViewport(keepCamera) re-mounts, restores zoom (1.4/1.5), keeps the image actor
and renders, with zero errors.

* refactor(next): move viewport interaction ops into a Legacy/Next operations backend

The commandsModule carried inline native-vs-legacy branches for every viewport
interaction/appearance command. Extract them into a dedicated operations backend
that mirrors the existing IViewportBackend twin pattern:
- IViewportOperations: the interface (flip/invert/rotate/reset/scaleBy/
  setWindowLevel/setColormap/getViewPlaneNormal/centerOnMeasurement + 3D VR ops)
- LegacyViewportOperations: legacy lane via direct legacy APIs (getCamera/
  setProperties/getViewPresentation/resetCamera/actors), lifted verbatim
- NextViewportOperations: native lane via the presentation/camera-state bridges +
  native semantic API (getViewState/resetViewState/getViewReference/setZoom); the
  3D VR ops warn-once and no-op behind a CS-14 gate (native VR not supported yet)
- viewportOperations: per-viewport dispatcher (isGenericViewport ? next : legacy)

commandsModule's 13 interaction commands become one-line delegations (the file
shrinks ~239 lines) and CornerstoneViewportService.getViewportAlignmentData uses
viewportOperations.getViewPlaneNormal.

Dispatch is per-viewport (not flag-selected like the lifecycle IViewportBackend)
because operations run on already-created, self-describing viewports and a session
can mix lanes; this preserves the previous inline isGenericViewport branching
exactly. Render() stays in the command (per-command render timing preserved).

Validated live both lanes: native (flag on) applies all ops (invert/flip/rotate/
zoom/WL/colormap; reset is camera-only) and legacy (flag off) is byte-identical
(parallelScale*0.9 zoom, getViewPresentation rotation, resetProperties+resetCamera),
both with a clean console. Adversarial review found no byte-identity/runtime defects.
Segmentation untouched.

* feat(next): render native 3D volume rendering + enable its VR operations

Make native VOLUME_3D_NEXT viewports actually render volume rendering and wire up
the 3D VR operations:

- CornerstoneViewportService._setNativeVolumeDisplaySets: a 3D viewport (cornerstone
  type VOLUME_3D_NEXT) now mounts with setDisplaySets({ options: { renderMode:
  'vtkVolume3d' } }) instead of the planar { orientation, role }, and applies the
  display-set's volume-rendering preset to the volume actor via csUtils.applyPreset
  (the bare native VolumeViewport3D has no setProperties). colormap (a planar LUT
  concept) is skipped for 3D. The dataId registration is unchanged (the volume3d data
  provider reads imageIds/volumeId and ignores the stored kind).

- NextViewportOperations: the four VR ops are no longer CS-14 no-ops. setPreset
  applies the preset to the volume actor via applyPreset; setVolumeRenderingQuality/
  shiftVolumeOpacityPoints/setVolumeLighting operate on the vtk volume actor through
  getActors (which native VolumeViewport3D exposes), so they reuse the legacy
  actor-based implementations. Pairs with the cornerstone fix that keeps the 3D
  viewport's canvas visible.

Verified live: native 3D VR renders (CT-Bone/CT-Cardiac presets) and all four VR
commands apply on a native VOLUME_3D_NEXT viewport; legacy VOLUME_3D unchanged.

* docs(next): refresh migration plan to HEAD (2026-06-19 audit)

* fix(next): target fusion colormap at the overlay binding

NextViewportOperations.setColormap dropped params.displaySetInstanceUID and
always wrote to the active source binding via getSourceDataId(), so a PT/CT
fusion colormap landed on the CT source instead of the PT overlay. Thread the
displaySetInstanceUID through to setViewportProperties so it targets the right
native binding (OHIF maps each display set 1:1 onto its bare dataId); falls back
to the source when no id is given (single-volume / plain stack colormap).

Also document DataIdRegistry.dataIdFor's 'overlay' suffix as reserved for the
same-UID source/overlay case (derived labelmap overlays, M4) rather than fusion,
whose distinct-UID overlays are already collision-free under the bare id.

* fix(next): make residual native-unsafe viewport sites safe

Sweeps the OHIF-side sites a native PLANAR_NEXT viewport reaches that still
called legacy-only APIs (getProperties/getCamera) or branched on the collapsed
viewportType:

- CornerstoneCacheService: persist the legacy stack/volume decision as
  viewportData.dataShapeType (createViewportData) and branch on it in
  invalidateViewportData instead of viewportType. Native collapses stack+volume
  onto PLANAR_NEXT, so a native stack previously fell through to the VOLUME
  rebuild and re-mounted as volume data on metadata invalidation. Falls back to
  viewportType for legacy/older data (byte-identical off-path).
- ViewportOrientationMarkers: gate the synthetic-IOP default-cosine check on
  dataShapeType, not viewportType==='stack' (dead on native -> guard was skipped).
- CornerstoneViewportDownloadForm: the capture viewport is the source's type, so a
  native source threw on getProperties/setStack/setProperties. Add a native capture
  path that re-mounts the source's already-registered dataId via setDisplaySets and
  copies presentation + view state through the bridges (legacy path byte-identical).
- tmtv ROI-threshold: read the slice focal point via a new getViewportFocalPoint
  bridge (native getViewReference().cameraFocalPoint vs legacy getCamera().focalPoint)
  instead of getCamera(), which is absent on native.

New bridge getViewportFocalPoint added to getViewportPresentation.ts and exported
from @ohif/extension-cornerstone. Validated live: native stack renders, console
clean, viewportData.dataShapeType='stack' while viewportType='planarNext',
orientation markers render.

* feat(next): mount native video/WSI/ECG viewports

Under useNextViewports, NextViewportBackend.dispatchMount routed ALL viewports by
data shape (volume vs stack), so VIDEO_NEXT/WHOLE_SLIDE_NEXT/ECG_NEXT constructed
as native classes but mis-ran _setStackViewport's stack-specific prefetch/VOI/
kind:'planar' logic and never reached their dedicated mounts; ECG additionally
called the absent setEcg.

- NextViewportBackend.dispatchMount: route the non-planar families by viewport
  type to _setEcgViewport / _setOtherViewport (mirrors the legacy backend's type
  dispatch); planar stack/volume still routes by data shape.
- _setEcgViewport: native branch registers {kind:'ecg', sourceDataId} and mounts
  via the generic setDisplaySets API (native ECG has no setEcg).
- _setOtherViewport: native branch registers {kind:'video', sourceDataId} or, for
  WSI, {kind:'wsi', imageIds, options:{webClient}} with the client resolved from
  WADO_WEB_CLIENT metadata exactly as the legacy WSI adapter does, then mounts via
  setDisplaySets + setViewReference.
- DataIdPayload widened to a family-specific union (planar/video/ecg/wsi).

All registration goes through the ref-counted DataIdRegistry (§4.7). OHIF-only —
the cornerstone native classes already support setDisplaySets (per the
genericVideo/genericEcg/genericWsi examples). Validated: native planar render
unaffected by the dispatch change (console clean); video/WSI/ECG mounts follow the
canonical cornerstone examples but are not yet live-validated (no such study on the
dev dicomweb).

* chore(next): guard the useNextViewports flag-read allowlist (M7 prep)

Adds .scripts/check-next-viewports-flag-reads.mjs (wired as `yarn
next:check-flag-reads`) enforcing migration plan §4.2: the flag may be read only
in the sanctioned seam — getCornerstoneViewportType (type selection),
CornerstoneViewportService (backend selection), nextViewports.ts (the accessor),
init.tsx (the one appConfig.useNextViewports read), and the TEMP dev toggle in
getToolbarModule.tsx. Any other isNextViewportsEnabled()/appConfig.useNextViewports
read under extensions/cornerstone/src fails the check, so the legacy off-path
cannot drift. (Comment-only mentions are ignored; tests are exempt.)

The earlier audit framed the '2 sanctioned reads' contract as already violated by a
'backend trio', but those files only MENTION the flag in doc comments — the actual
runtime read surface is the sanctioned set above, so the rule is enforceable as
written. TODO_BEFORE_MERGE.md updated: the guard is permanent (not a dev revert),
and removing the dev toggle must also drop its allowlist entry.

Does NOT perform the destructive M7 reverts (config default flip, toggle button):
those are premature while segmentation/M4 is unmigrated and would disable the
in-browser test loop.

* docs(next): mark CS-12 native calibration done; refresh CS-20/M6 status

* docs(next): re-verify migration status at HEAD; correct stale prose

Re-audited every milestone (M0-M7) and CS blocker against HEAD source via a
multi-agent audit + adversarial verification pass. Five commits landed after the
last full prose refresh (05e0df0ca) and only d5d03d888 touched the doc, so the
Implementation status section was materially stale. Corrections:

- M2: fusion colormap keying is FIXED (7b61e08ee), not 'unsound'
- M3: four 'native-unsafe throws' are FIXED (a19bd7826); the per-volume WL panel
  is guarded (d28202610), not throwing - feature port, not a crash
- M6: video/WSI/ECG ARE mounted natively (ca746e2f0)
- M7: flag-read allowlist IS built (b5784ca80), just not wired into CI
- CS-21: stated trigger is unreachable; narrowed to single-point SCOORD3D, and
  the open code is PlanarViewReferenceController.ts (not planarViewReference.ts)

Adds a consolidated, verified remaining-work punch-list and a corrections
subsection. The one real native crash that remains is the M4 segmentation OHIF
half (convertStackToVolumeViewport throws AND promotes to legacy ORTHOGRAPHIC).

* Refactor SegmentationService to support dual backends for segmentation handling

- Introduced ISegmentationBackend interface to define methods for segmentation backends.
- Implemented LegacySegmentationBackend for existing behavior with stack/volume promotion.
- Implemented NextSegmentationBackend for native GenericViewport handling without promotion.
- Updated SegmentationService to utilize the appropriate backend based on viewport type.
- Removed legacy viewport handling logic from SegmentationService and delegated to backends.
- Enhanced segmentation data assembly to support overlapping segments in the Next backend.
- Updated CornerstoneViewportService to ensure proper restoration of segmentation presentations.
- Added support for preserving additional query parameters in the application.

* temp

* Refactor CornerstoneViewportService to optimize setDisplaySets handling for 3D volumes

* d

* Refactor viewport handling and opacity management for native volume rendering

* fix(WindowLevel): re-sync fusion tab to foreground default after async resolve

The effect only adopted the foreground (PT) default when activeDisplaySetUID was
falsy, so if foregroundDisplaySets was empty at mount the tab seeded to the CT
fallback and stayed pinned to CT once PT resolved. Track explicit user selection
and re-sync to the foreground default until the user picks a tab.

* chore(next): remove WIP migration plan artifacts from the branch

Delete the planning docs and plan-viewer pages that were committed during
development (migration plans, blueprint, TODO_BEFORE_MERGE, plan-viewer.html).
They are not part of the shipped viewer and only attract review noise.

* fix(next): address review findings (guards + correctness)

Apply CodeRabbit review comments on the migration code:
- commandsModule: guard missing viewport before setWindowLevel/render
- WindowLevel: drop stale activeDisplaySetUID when the viewport's display sets change
- SegmentationService: hard guard when segmentation lookup fails before backend classify
- LegacyViewportOperations: guard getActors()[0] before actor-chain calls
- CornerstoneViewportService: guard empty native stack imageIds; don't route generic
  overlay-only mounts to legacy setVolumes; stop overwriting tracked display sets with
  base-volume-only ids (drops SEG/RT/fusion overlay UIDs)
- getCornerstoneViewportType: list orthographic/volume3d in the invalid-type error
- nextViewports: skip reload (warn) when the toggle can't be persisted
- tmtv: guard missing focal point before mutating ROI annotation coordinates
- check-next-viewports-flag-reads: also catch bracket/destructured flag reads

* fix(overlay): show instance number on next viewports

The viewport overlay's getInstanceNumber switched on viewportData.viewportType,
which for next viewports is the native PLANAR_NEXT type (the stack/volume shape
is persisted separately as dataShapeType). The switch matched no case, so the
instance number was null and the overlay showed only the slice index/count.

Switch on (dataShapeType ?? viewportType) so next stack/volume viewports take
the correct branch (legacy is unaffected). Also make _getInstanceNumberFromVolume
read the view-plane normal via getViewReference for native viewports, which
expose no getCamera, so routing next volume viewports through it cannot throw.

* fix(overlay): refresh window level on series change for next viewports

The overlay's WW/WL comes from useViewportRendering, whose init effect reads the
VOI via getViewportProperties. On series change the effect re-runs, but native
(next) viewports expose only explicit VOI overrides through
getDisplaySetPresentation; a freshly shown series has none, so properties.voiRange
was undefined, setVoiRange was skipped, and the overlay kept showing the previous
series' window level. Legacy getProperties always returns the applied VOI, so only
native viewports were affected.

Fall back to the viewport's computed default VOI (getDefaultVOIRange) for generic
viewports when no override is stored, matching the LivewireContourTool and
WindowLevelTool bridges. Legacy behavior is unchanged.

* fix(scrollbar): seed slice state on orientation change for next viewports

The progress scrollbar seeded its slice state (imageIndex/numberOfSlices) only
when viewportData changed. Native (next) viewports keep the same viewportData
across a stack->volume transition or an orientation change, and the slice-
navigation event does not fire until the first scroll, so the scrollbar was
missing on the initial slice (or stale with a wrong slice count) until the user
scrolled once.

Re-seed the slice state from the live viewport on CAMERA_MODIFIED (which native
viewports emit on orientation/geometry changes, as the sibling full-mode hook
already relies on). A guard skips redundant state updates so pure pan/zoom does
not churn React state.

* refactor(next): call resetDisplaySetPresentation on reset

Follow the cs3D rename of the native viewport's presentation-reset method from
resetProperties to resetDisplaySetPresentation (the next viewport API uses
get/set DisplaySetPresentation, not get/set Properties). Behavior unchanged.

* fix(segmentation): make border/outline thickness slider integer-only

The Border (outline width) slider for labelmap and RTSTRUCT used step=0.1,
allowing fractional outline widths. Outline thickness is a pixel width and
should be a whole number, so use step=1 and round the committed value. The
fill/opacity sliders keep their fractional step.

* fix(crosshairs): guard resetCrosshairs against unregistered Crosshairs tool

resetCrosshairs (run by Reset Viewport) called toolGroup.getToolInstance('Crosshairs')
for every tool group; getToolInstance logs 'Crosshairs is not registered with this
toolGroup' when the tool is absent, and a next viewport's default tool group does not
include Crosshairs, so Reset Viewport logged a spurious warning. Guard the lookup with
toolGroup.hasTool('Crosshairs') and skip tool groups that lack it; also guard against a
missing tool group for the viewport.

* fix(next-fusion): promote source to volume slice when a data overlay is added

A data overlay (fusion) on a next (PLANAR_NEXT) viewport rendered the source as a
vtkImage stack while the overlay was a vtkVolumeSlice, producing a broken/unstable
fusion (geometry mismatch, intermittent across slices/scroll). Two causes:

1. CornerstoneCacheService.createViewportData built stack data when the fusion's
   primary display set resolved to a stack shape, so the source never got a
   volumeId. Force a volume (orthographic) shape when there are 2+ reconstructable
   image display sets (a data fusion must be volume; legacy already did this, and
   non-reconstructable SEG/RT overlays are excluded).

2. dataIdRegistry.register used first-writer-wins, so re-registering the source
   (originally a vtkImage stack, no volumeId) with its fusion volumeId was dropped,
   leaving its dataset volumeId-less -> the render-path decision kept it vtkImage.
   Update the provider when a payload promotes a dataId to volume-backed.

Validated via agent-browser: adding a PT overlay onto a CT source now mounts both
as vtkVolumeSlice (mode=volume), the fusion is anatomically coherent and stable
across scroll, with no console errors.

* fix(next-rtss): keep referenced CT in stack mode on RTSTRUCT hydrate

RTSTRUCT (contour) hydration on a native PLANAR_NEXT viewport re-mounted the
referenced CT as a volume slice, which is the slow path the perf AC forbids.

Spike proved cs3d already renders contour segmentations on a stack/vtkImage
PLANAR_NEXT viewport (via the annotation + isReferenceViewable path), and that
stack-mode contour scroll is fast (~0.15ms/scroll, no metadata storm) once the
canvas-dimension layout-thrash fix is in place. The only remaining issue was the
hydrate re-mount promoting the CT to volume.

Pin the referenced viewport to 'stack' for RTSTRUCT hydration on next viewports:
hydrateSecondaryDisplaySet passes viewportType:'stack' (scoped to RTSTRUCT +
isNextViewportsEnabled), and loadSegmentationDisplaySetsForViewport applies it as
a per-mount viewportOptions override. SEG and legacy keep their current behavior.

Verified at runtime: after hydrate the viewport stays vtkImage/stack, contours
render across slices, scroll is 0.16ms with 0 metaData.get calls, CT VOI intact.

* fix(next-fusion): match legacy initial data-overlay opacity (~40%) on next viewports

The data-overlay add path passes a nominal colormap opacity of 0.9. Legacy
volume rendering attenuates that to ~40% effective via ray-cast opacity-unit-
distance correction, but native PLANAR_NEXT viewports composite the overlay as
a flat 2D image-slice blend with no such attenuation, so the same 0.9 rendered
at ~80-90%. Override the initial overlay opacity to 0.4 for next viewports
(mirrors the TMTV fusion NEXT_FUSION_PT_OPACITY), gated on isGenericViewport and
a numeric opacity so SEG/RTSTRUCT overlays and the legacy path are unaffected.

* fix(next-fusion): preserve fusion on orientation change in next viewports

The orientation corner menu branched on viewportType === ORTHOGRAPHIC to decide
in-place reorient vs viewport recreation. Native next viewports always report
planarNext, so a fusion already in volume mode wrongly took the recreation path,
which passes empty displaySetOptions and drops the PET overlay colormap/opacity
(rendering PET only). Branch instead on whether the live viewport is already in
volume mode (isOrthographicViewportType || utilities.viewportIsInVolumeMode):
volume-mode viewports reorient in place (setViewportOrientation, which preserves
all bindings and their presentation); only a genuine stack->volume conversion
recreates. Legacy ortho/stack behavior is unchanged.

* fix(next-seg): preserve base image window level through SEG hydration

Hydrating a SEG re-mounted the referenced image and restored a stale, computed
VOI from the LUT presentation store, brightening the base image (e.g. an MR went
from its DICOM WC/WW default to a volume min/max default). During the SEG-load
intermediate mount the base image briefly carries a computed default VOI; the
native read bridge returned it with no isComputedVOI marker, so cleanProperties
never stripped it and it was persisted then replayed over the correct default.
Legacy StackViewport tags computed VOIs (isComputedVOI) so they are stripped.
Mirror that: in getViewportProperties, stamp isComputedVOI on a native binding's
VOI when it matches the binding's getDefaultVOIRange, so the LUT capture strips
it. Harmless when a genuine user VOI equals the default (stripping falls back to
the same value).

* fix(next-mpr): re-seed slice scrollbar after post-mount camera carry

On a stack->volume/MPR transition the slice carry (e.g. layout-selector MPR HP
restoring the prior slice) moves the camera and fires its slice events
synchronously during the mount, before the scrollbar effect attaches its
listeners and around its initial seed -- so the scrollbar latched the mount-time
index. Re-seed once on the next frame after mount+carry settle; the pushSliceData
guard makes it a no-op when nothing changed (no churn).

* chore(deps): bump @cornerstonejs/* to 5.1.2

* chore: empty commit

* fix(next): use published genericViewportDisplaySetMetadataProvider export

The next viewport backend imported genericViewportDataSetMetadataProvider
from @cornerstonejs/core, a symbol that only existed in the local custom
cornerstone worktree (linked via symlink). Published cornerstone exports it
as genericViewportDisplaySetMetadataProvider (same add/remove/get/clear API).

CI always builds against published packages, so the production rspack build
failed (ESModulesLinkingError -> Netlify red) and the cypress dev-server
build showed a full-screen error overlay that blocked all clicks (PR_CHECKS
red). Renaming to the published symbol fixes both.

* test(e2e): extend Scoord3dProbe jump screenshot retry window

The jump-to-measurement screenshot was the only failing assertion (pre/post
hydration pass). It uses waitVolumeLoad:false, so on slower CI the dynamic
tfl_dyn_fast_tra series can still be progressively loading when the shot is
taken, giving a partial probe value (52.0 vs baseline 78.0) and shifted VOI.
Raise checkForScreenshot attempts 10->20 and delay 1250->2000ms (~11s -> ~40s)
to let the volume settle before failing.

* fix(next): address review findings (scaleBy 3D crash, fusion W/L target, off-path gate, seg export perf)

- NextViewportOperations.scaleBy: guard getZoom/setZoom so the zoom hotkey
  no-ops on a native VolumeViewport3D instead of throwing (matches legacy).
- Native setWindowLevel: forward displaySetInstanceUID so PT/CT fusion W/L
  targets the intended binding (mirrors setColormap) instead of always source.
- CornerstoneCacheService: scope the reconstructable-fusion STACK->ORTHOGRAPHIC
  promotion to PLANAR_NEXT so the legacy (flag-off) path stays byte-identical.
- dicom-seg buildLabelmap3D: precompute a referencedImageId->index Map to drop
  the multi-layer export from O(slices^2) to O(slices).

* fix(next): address CodeRabbit review (dispatch discriminator, seg return contract, error msg)

- NextViewportBackend.dispatchMount: route stack/volume on the persisted
  dataShapeType contract instead of the lazily-populated 'volume' field probe.
- SegmentationService.attemptStackToVolumeConversion: return false explicitly on
  the frame-of-reference-mismatch path to honor the Promise<boolean> contract.
- getCornerstoneViewportType: list orthographic/volume3d in the legacy-path
  invalid-type error (both are valid and handled above the throw).

* test(next): update getCornerstoneViewportType invalid-type assertion

Match the legacy-path error message now listing orthographic/volume3d (b16129ece).

* chore(next): replace dev toggle + flag-read guard with URL opt-in

- Remove the .scripts/check-next-viewports-flag-reads.mjs CI guard and its
  package.json script entry.
- Drop the TEMP ToggleNextViewport toolbar button across all modes plus the
  toggleNextViewports command and getToolbarModule evaluator (revert mode files
  to their master state; keep the real native-path toolbar fixes).
- Remove the localStorage override / toggleNextViewportsAndReload from
  nextViewports.ts; resolveNextViewportsEnabled now honors a ?useNextViewports
  URL query param (true/1/empty enable) over appConfig.
- Stop forcing useNextViewports:true in default.js (opt-in via URL/appConfig).
- Preserve useNextViewports across navigation (preserveQueryParameters).

* fix(tmtv): keep legacy fusion PT opacity ramp; flatten only on next path

Flattening the fusion PT opacity to a scalar 0.9 in hpViewports changed the
legacy TMTV fusion rendering (the ramp keeps low PT values transparent so the CT
shows through). Restore the legacy ramp in hpViewports and instead replace it
with the flat native scalar (0.4) inside getHangingProtocolModule only when
useNextViewports is on, so legacy is unchanged and native still gets a flat blend.

* redo

* fix(next): avoid top-level dicomWebUtils destructure crash on boot

getSopClassHandlerModule destructured transferDenaturalizedDataset /
fixMultiValueKeys from dicomWebUtils at module-eval time. This module and
@ohif/extension-default form a circular import, so dicomWebUtils can be
undefined at eval time depending on bundler module order; the top-level
destructure then throws (Cannot destructure property ... of dicomWebUtils
as it is undefined) and crashes app boot before the Layout renders, which
surfaced as the Playwright globalSetup warmup timing out on [data-cy=Layout].

Access the utils lazily at call time inside getDICOMwebMetadata instead.

* fix(next): guard remount no-op path and defer legacy camera snapshot

- CornerstoneViewportService.updateViewport: backend.remount() is typed
  Promise<void> | undefined and returns undefined for viewport families with
  no re-mount path; guard before .then() so those families no longer throw.
- LegacyViewportBackend.remount: take the camera snapshot inside the volume
  branch (the only consumer) instead of before the family checks, so families
  without a camera surface no-op safely and the stack path skips a dead call.

Addresses CodeRabbit review findings on PR #6101.

* feat(next): add ?cpu=true URL opt-in to force the CPU render path

Mirrors the ?useNextViewports opt-in: a cpu URL query param overrides
appConfig.useCPURendering per-session (?cpu, =true, or =1 enable it).
Wired through cornerstone.setUseCPURendering in init, whose global flag is
consulted by the GenericViewport PlanarRenderPathDecisionService for both
the image (CPU_IMAGE) and volume (CPU_VOLUME) paths, so under
useNextViewports a single ?cpu=true forces the next viewport onto CPU.

Extracted the shared query-param parsing into resolveBooleanUrlOptIn.

* feat(cornerstone): select render backends via viewportRendering param

Replaces the boolean cpu URL param with viewportRendering=cpu|webgl|auto
(or any backend registered via cornerstone registerRenderBackend, e.g. a
webgpu backend), mapped to the cornerstone render-backend registry. A
per-viewport-type override (e.g. orthographic.viewportRendering=cpu) is
passed as the per-mount renderBackend option on native planar mounts.
The global value also drives the legacy useCPURendering flag so legacy
viewports follow the same selection, letting a session force GPU when
the deployed config defaults to CPU.

* fix(dicom-seg): store overlapping segmentations as binary SEG

A LABELMAP SEG frame stores a single label per voxel, so the labelmap
encoder cannot represent overlapping segments (the later layer wins).
When the export produces multiple overlapping layers and the resolved
store mode is labelmap, switch that store to the binary SEG encoding,
which writes overlapping segments as separate frames referencing the
same source slice.

* fix(cornerstone): apply review fixes to viewport backends

- Anchor the cached-volume lookup in NextViewportAdapter to the
  loaderSchema:displaySetInstanceUID id shape instead of a substring
  match, so a derived volume id embedding the same UID cannot resolve.
- Keep the viewing orientation on fitViewportToWindow (scaleBy 0) for
  native planar viewports, matching legacy resetCamera semantics.
- Release legacy WSI metadata-provider registrations through the same
  ref-counted DataIdRegistry the native backend uses, so entries are
  removed on viewport disable and service destroy.

* test(cornerstone): use real volumeId shape in adapter contract test

The anchored cached-volume lookup rejects ids that merely embed the
display set UID, so the mock now uses the real
volumeLoaderSchema:displaySetInstanceUID shape and asserts an embedded
UID id does not match.

* docs(config): document useNextViewports and viewportRendering in default config

Gives deployments an obvious place to opt into the native Generic
Viewport path and configure its render backend. Both stay off/auto by
default; the explicit false preserves the opt-in contract.

* refactor(config): group next viewport settings under genericViewports

Replaces the two top-level app config keys (useNextViewports,
viewportRendering) with one genericViewports object:
{ enabled, viewportRendering }. The URL params are unchanged.

* chore(deps): bump cornerstone packages to 5.4.15

Picks up the planar initial-slice remap fix (cornerstonejs/cornerstone3D#2799):
opening a SEG display set now lands on the first segmented slice instead of
its mirror when the cached volume reverses the imageId ordering.

* test(segmentation): verify overlapping SEG rendering

* fix(sr): make SCOORD3D hydration deterministic

---------

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2026-07-11 12:13:54 -04:00
ohif-bot
00bb77d940 chore(version): Update package versions to 3.13.0-beta.122 [skip ci] 2026-07-11 06:24:30 +00:00
Ghadeer Albattarni
01939e2236
test: add E2E test for contour combine intersect and subtract operations (#6131) 2026-07-11 02:21:39 -04:00
ohif-bot
f0e2f64397 chore(version): Update package versions to 3.13.0-beta.121 [skip ci] 2026-07-10 22:54:59 +00:00
Alireza
43226d9191
fix(app): appearance modal provider scope, worklist preview persistence, and tag browser label overflow (#6136)
- Insert ServiceProvidersManager providers ahead of the dialog/modal
  providers in App.tsx: modal content renders as a sibling of the
  provider's children, so contexts registered via the manager (e.g.
  ActiveThemeProvider) were out of scope and the appearance modal
  crashed with 'useActiveTheme must be used within an ActiveThemeProvider'.
- Persist the worklist preview panel open/closed state in
  sessionStorage so it survives navigating into a study and back.
- Keep the DICOM tag browser instance number label on one line:
  the words truncate, the (n of total) digits never clip.
2026-07-10 18:52:06 -04:00
ohif-bot
dc9df56be4 chore(version): Update package versions to 3.13.0-beta.120 [skip ci] 2026-07-10 21:08:34 +00:00
Alireza
9c76afa075
feat(segmentation): replace One Click Segment with ClickSegmentTool (#6135)
* feat(segmentation): replace One Click Segment with ClickSegmentTool

Wire OHIF to ClickSegmentTool from Cornerstone3D (#2780), rename the
toolbox button to Click to Segment, and enable it only on PET (PT)
viewports.

* chore(deps): bump @cornerstonejs packages to 5.4.13

Pick up ClickSegmentTool from the published Cornerstone3D release so
OHIF installs the tool from npm without a local CS3D link.
2026-07-10 17:05:26 -04:00
ohif-bot
6d8a275171 chore(version): Update package versions to 3.13.0-beta.119 [skip ci] 2026-07-10 19:38:19 +00:00
Alireza
1eee3e6119
fix(MetadataProvider): Correctly assign imageId for multiframe images and remove unused frame information retrieval method (#5965) 2026-07-10 15:35:09 -04:00
ohif-bot
2c54616136 chore(version): Update package versions to 3.13.0-beta.118 [skip ci] 2026-07-10 17:34:50 +00:00
Alireza
9329dd5b55
test(core): use fake timers in Queue unit tests to stop CI flakes (#6134)
The Queue tests measured real setTimeout wall-clock time and asserted
elapsed < 2 * threshold. On busy CI runners a 2400ms timer can take
longer than 4800ms to fire, failing the assertion intermittently (seen
in downstream validation runs). Switch to jest's modern fake timers so
elapsed is exactly the timeout delay: the tests are deterministic and
no longer spend ~5 seconds of real time waiting.
2026-07-10 13:31:42 -04:00
ohif-bot
75105ced04 chore(version): Update package versions to 3.13.0-beta.117 [skip ci] 2026-07-10 16:46:10 +00:00
Bill Wallace
b266c0a86a
feat: Add extensibility for tmtv and segmentation modes (#6128)
* feat: Add extensibility for tmtv and segmentation modes

* Fixes for ordering issues on laod

* Remove unnecessary reference lookup

* Chane side panel timing to fix tests

* PR comments - change how mode definitions get created

* Improvements to mode customizations

* Start organizing customizations

* Misc fixes for a customization demo page

* Security fixes

* PR requested changes to naming
2026-07-10 12:43:17 -04:00
ohif-bot
f79055f98e chore(version): Update package versions to 3.13.0-beta.116 [skip ci] 2026-07-10 12:19:06 +00:00
Bill Wallace
6b6761088b
fix: Several new worklist issues (#6130)
* fix: Several new worklist issues

* refactor: Export a single OnStudyDoubleClick type from the StudyList barrel

Addresses PR review feedback: the double-click handler signature was
written out in both TableProps and the WorkList customization cast,
so the two could drift apart.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* feat: Run worklist study double-click as a command, registrable by modes

- Modes can now export getCommandsModule on their definition; appInit
  registers it (via the new ExtensionManager.registerCommandsModule)
  before the mode is instantiated, in a new 'WORKLIST' commands context,
  so the commands are available on the worklist before any mode route
  is entered.
- The workList.onStudyDoubleClick customization is now a command run
  input (name/options) instead of a bare function, defaulting to the
  new launchDefaultMode command, which launches the default workflow
  falling back to the first applicable one. commandOptions.workflowId
  overrides it to a specific mode.
- Duplicate mode ids are now skipped before running their modeFactory
  rather than after.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 08:16:16 -04:00
Bill Wallace
dbb8b1526e
feat: Add support for labelmap seg images in any supported tsuid (also for compressed bitmap) (#5806)
* feat: Update to use pnpm (#6031) [simulated squash-merge]

* feat: load DICOM SEG images via imageLoader

* feat: load DICOM SEG images via imageLoader

* PR review fixes

* Test fragment of compressed multiframes

* fix: Removed dependencies incorrectly

* Update frame as a targetted change to avoid stripping remaining params

* lock

* Update test to agree with the missing representation branch

* test(contour): contour color change coverage (#6042)

* test(contour): contour interactions delete segment (#6069)

---------

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>

* chore(version): Update package versions to 3.13.0-beta.98 [skip ci]

* feat(testing): OHIF Test Agent Skills (#5993)

* chore(version): Update package versions to 3.13.0-beta.99 [skip ci]

* test(contour): Add the ContourSegmentToggleLock.spec.ts test file to test contour locking (#6072)

* chore(version): Update package versions to 3.13.0-beta.100 [skip ci]

* chore(testing): Flock lock for playwright tests; Pin node version for OHIF; add more workers (#6099)

* update Cypress apt deps for Ubuntu Noble (drop libgconf-2-4, libasound2→libasound2t64)

* chore(version): Update package versions to 3.13.0-beta.101 [skip ci]

* Debug fixes

* perf(seg): pass explicit frame decode concurrency (16) to SEG loader

Pass an explicit concurrency value (SEG_FRAME_DECODE_CONCURRENCY = 16) into
createFromDicomSegImageId rather than relying on the adapter default, so the
SEG frame fetch/decode parallelism is set at the call site and is ready to
become configurable.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs(behaviours): add behaviours section + multiframe Part 10 prefetch proposal

Start a "Behaviours" docs section for documenting how the system and UI behave
end-to-end (observed behaviours, design proposals, and failure modes), with an
index README and a Docusaurus category.

First entry is the proposal for loading a multiframe SEG as a single Part 10
instance: prefetch the whole instance (gated by loadMultiframeAsPart10RaceTimeMs),
parse it with dcmjs (handling multipart/related vs raw DICOM), and register the
per-frame compressed pixels into the Cornerstone3D core image cache (the single
uniform frame registry) so the per-frame load path is served locally while the
standard decode path is unchanged. Best-effort: falls back to per-frame fetches
on any failure.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Pre-cache the image data using a full part10 file for performance

* Add customizations to specify type of segmentation save

* Add clearcache of the cacheData

* Bump @cornerstonejs/* pins 5.1.3 -> 5.4.10 to match libs/@cornerstonejs base

libs/@cornerstonejs (fix/use-imageLoader-for-seg) is based on the released
cs3d 5.4.10 (merge-base with origin/main is the 5.4.10 version bump), so pin
OHIF to that release. The local branch changes still reach the app via the
cs3d:link symlinks; these pins keep the lockfile/npm fallback aligned.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Fix seg OOM

* fix: file meta garbage element, bogus NumberOfFrames, unguarded source-map-loader

- dicomWriter: drop the naturalized meta.TransferSyntaxUID assignment that
  dcmjs wrote as a garbage (0000,0000) element into every saved file's meta
  group (download / clipboard / local wadouri blob / local store); keep the
  hex 00020010 assignment, which is required for string-form _meta fallbacks.
- registerNaturalizedDatasetForLocalWadouri: keep the computed frame count
  local so single-frame IODs (SR, RTSTRUCT) no longer gain a bogus
  NumberOfFrames element in their serialized form.
- rsbuild.config: resolve source-map-loader opportunistically (it is not a
  project dependency; the rule only serves the gitignored cs3d-link
  workflow) so fresh clones no longer crash at config load.
- Regression tests for both writer fixes (mutation-checked).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* PR review comment fixes

* Update versions

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: diattamo <mmddiatta@gmail.com>
Co-authored-by: ohif-bot <danny.ri.brown+ohif-bot@gmail.com>
Co-authored-by: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com>
2026-07-09 20:54:23 -04:00
ohif-bot
b996070583 chore(version): Update package versions to 3.13.0-beta.115 [skip ci] 2026-07-08 18:15:05 +00:00
Bill Wallace
1b6fa2194e
Revert "feat: Add extensibility for tmtv and segmentation modes"
This reverts commit 84c7d17b13.
2026-07-08 14:11:24 -04:00
Bill Wallace
84c7d17b13
feat: Add extensibility for tmtv and segmentation modes 2026-07-08 14:08:59 -04:00
ohif-bot
76687cf496 chore(version): Update package versions to 3.13.0-beta.114 [skip ci] 2026-07-07 19:33:37 +00:00
Bill Wallace
3dd5c70cb2
feat: Add customization URL parameter (#5992)
* Add customization URL parameter

* fix: Preserve should be customizeable

* Update customizations docs

* fix: Overlay items on patient name

* Add customization test

* Fix resolve to absolute path

* fix: Warn on no data in load

* Remove unused customization stuff

* fix: PR comments

* Update stored parameters to only use an array for mulitples

* Remove requires ohif.* special call out

* Remove strict mode

* PR comments

* Document segmentation examples

* Add three examples as requested

* PR comments

* lock

* Remove old customizatoin export

* fix: Ordering issues on customization loads

* fix: Use correct default for dev builds app config

* Fixes for conflicts

* chore: restore pnpm-lock.yaml to match master

The lockfile diff was incidental peer-descriptor churn and carried no
functional dependency change. It tripped the CircleCI security-audit gate
(which only runs when pnpm-lock.yaml is in the PR diff), surfacing a
pre-existing critical `decompress` transitive vuln that also exists on
master. Restoring master's lockfile removes the audit trigger.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(ci): restore json5 lockfile entry; ignore unfixable decompress GHSA

The previous commit restored pnpm-lock.yaml from master, which dropped the
json5@2.2.3 entry that platform/core legitimately depends on (JSONC parsing
for the customization feature). That broke `--frozen-lockfile` install
(ERR_PNPM_OUTDATED_LOCKFILE). This restores the correct lockfile.

Because the lockfile must change (json5), the CircleCI security-audit gate
runs and previously failed on a critical `decompress` <=4.2.1 zip-slip
advisory. This is a pre-existing transitive vuln (present on master too) with
no published patch — decompress's latest release is 4.2.1, so no version
bump/override can resolve it. It reaches the tree only via @itk-wasm/dam, a
build/data-asset extraction tool under @cornerstonejs/labelmap-interpolation.

Add GHSA-mp2f-45pm-3cg9 to the existing pnpm-workspace.yaml auditConfig
ignoreGhsas accepted-risk list, matching how the repo already exempts other
build-tooling advisories. `pnpm audit --audit-level high` now passes locally
(1 critical ignored, 0 high).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* test(e2e): fix visitStudy URL encoding that broke mpr2 study load

The visitStudy rewrite (added for the ?customization= option) built the URL
with new URLSearchParams({ StudyInstanceUIDs: studyInstanceUID }), which
percent-encodes the value. mpr2.spec.ts embeds an extra param in the UID
string ('<uid>&hangingprotocolid=mpr'), so the & and = were encoded and the
whole thing collapsed into one invalid StudyInstanceUIDs value -> the study
could not be found ('studies are not available'), the viewer never rendered,
and the side-panel-header-right click timed out.

Restore master's raw concatenation for StudyInstanceUIDs (so embedded params
survive as separate query params) while still appending the customization
option separately. Only mpr2 embeds & in the UID, matching the single failure.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* PR comments

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 15:30:27 -04:00
ohif-bot
3d9a17bc0c chore(version): Update package versions to 3.13.0-beta.113 [skip ci] 2026-07-07 18:01:19 +00:00
Joe Boccanfuso
333d73e334
fix(security): ignore decompress security vulnerability (#6125) 2026-07-07 13:58:15 -04:00
ohif-bot
e381d22200 chore(version): Update package versions to 3.13.0-beta.112 [skip ci] 2026-07-07 17:21:45 +00:00
Alireza
f8546ce0e0
fix: recipe config cleanup, report-only CSP, logout redirect validation (#6124) 2026-07-07 13:18:46 -04:00
ohif-bot
973631b7e8 chore(version): Update package versions to 3.13.0-beta.111 [skip ci] 2026-07-06 13:38:47 +00:00
Alireza
e0f42d4f1d
fix(dicom-pdf): enhance PDF loading with authentication support
- move authenticated rendered media loading into the datasource\n- route DICOM video display sets through Cornerstone video viewports\n- add a 3.12 to 3.13 migration note for the removed DICOM-video viewport namespace
2026-07-06 09:35:26 -04:00
ohif-bot
2800f82e3c chore(version): Update package versions to 3.13.0-beta.110 [skip ci] 2026-07-02 13:00:56 +00:00
Joe Boccanfuso
38214f26de
fix(wsi): mount WSI/SM viewports via setDisplaySets (#6107) 2026-07-02 08:57:13 -04:00
ohif-bot
cb6cdafd24 chore(version): Update package versions to 3.13.0-beta.109 [skip ci] 2026-06-30 13:28:46 +00:00
Alireza
aa1ba771e0
fix(test): stabilize DICOM Tag Browser scrollbar screenshot (#6118) 2026-06-30 09:25:37 -04:00
ohif-bot
d4153f12b2 chore(version): Update package versions to 3.13.0-beta.108 [skip ci] 2026-06-29 16:58:29 +00:00
Alireza
71c50db9b5
fix(ci): deploy docs with Netlify CLI monorepo filter (#6115) 2026-06-29 12:55:01 -04:00
ohif-bot
4cdcd34a33 chore(version): Update package versions to 3.13.0-beta.107 [skip ci] 2026-06-29 16:42:34 +00:00
Dan Rukas
0dfd321326
feat(ui-next): Adds appearance dialog with theme presets and custom theme support (#6041) 2026-06-29 12:38:46 -04:00
ohif-bot
0fcebe05c6 chore(version): Update package versions to 3.13.0-beta.106 [skip ci] 2026-06-29 16:36:28 +00:00
Dan Rukas
ac45a9497f
docs(site): add ui-next component documentation and upgrade Docusaurus (#6102) 2026-06-29 12:33:16 -04:00
Dan Rukas
03b180f185
fix(colors): Replace hardcoded colors with theme tokens (#6040) 2026-06-29 12:32:40 -04:00
ohif-bot
e1bc625ab8 chore(version): Update package versions to 3.13.0-beta.105 [skip ci] 2026-06-26 12:23:19 +00:00
Joe Boccanfuso
661ecb5b2e
fix(hotkeyBindings): consolidate Escape hotkey behavior for contour drawing tools (#6104)
* fix(hotkeyBindings): consolidate Escape hotkey behavior for contour drawing tools

* PR feedback.

* PR feedback.
2026-06-26 08:20:22 -04:00
ohif-bot
b7c8b865dd chore(version): Update package versions to 3.13.0-beta.104 [skip ci] 2026-06-24 19:21:51 +00:00
nithin-trenser
ee165b4d8e
Fix: Segmentation Hide All fails when switching from 2D to 3D fourUp (#5995)
* Fix: Segmentation "Hide All" fails when switching from 2D to 3D four-up viewport

* Update based on the review comment on segmentation load in 3d fourup

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* fix: simplify the conditional logic

* fix: playwright test

* fix: playwright test

* fix: render timeout in test

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: Belbin-GK <150322972+Belbin-GK@users.noreply.github.com>
Co-authored-by: Devu Jayalekshmi <devu.jayalekshmi@trenser.com>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2026-06-24 15:18:16 -04:00
ohif-bot
589d6a1506 chore(version): Update package versions to 3.13.0-beta.103 [skip ci] 2026-06-24 15:08:56 +00:00
diattamo
95200ec6e8
test(segmentation): switch getSegmentCount to expect(rows).toHaveCount in panel specs (#6105) 2026-06-24 11:05:27 -04:00
ohif-bot
8f6947b75d chore(version): Update package versions to 3.13.0-beta.102 [skip ci] 2026-06-24 14:39:34 +00:00
diattamo
79cb2356e1
chore(testing): Playwright tests for contour segmentation create, update, delete interactions (#6091) 2026-06-24 10:36:16 -04:00
ohif-bot
20632f97cf chore(version): Update package versions to 3.13.0-beta.101 [skip ci] 2026-06-23 06:25:18 +00:00
Joe Boccanfuso
c205965f87
chore(testing): Flock lock for playwright tests; Pin node version for OHIF; add more workers (#6099)
* update Cypress apt deps for Ubuntu Noble (drop libgconf-2-4, libasound2→libasound2t64)
2026-06-23 02:21:18 -04:00
ohif-bot
75488298cd chore(version): Update package versions to 3.13.0-beta.100 [skip ci] 2026-06-23 05:56:18 +00:00
diattamo
b24f039735
test(contour): Add the ContourSegmentToggleLock.spec.ts test file to test contour locking (#6072) 2026-06-23 01:52:35 -04:00
ohif-bot
1f6670c602 chore(version): Update package versions to 3.13.0-beta.99 [skip ci] 2026-06-20 15:33:27 +00:00
diattamo
b9cde4981a
feat(testing): OHIF Test Agent Skills (#5993) 2026-06-20 11:30:27 -04:00
ohif-bot
fc994fe525 chore(version): Update package versions to 3.13.0-beta.98 [skip ci] 2026-06-20 15:17:28 +00:00
diattamo
ada2da34f0
test(contour): contour interactions delete segment (#6069)
---------

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2026-06-20 11:14:07 -04:00
diattamo
5955151ba1
test(contour): contour color change coverage (#6042) 2026-06-20 11:11:57 -04:00
ohif-bot
419366bd25 chore(version): Update package versions to 3.13.0-beta.97 [skip ci] 2026-06-19 16:37:27 +00:00
Bill Wallace
b59eb30b0f
fix: Release deploy of docs (#6095)
A netlify fix that needs to be verified on master
2026-06-19 12:34:07 -04:00
ohif-bot
57d03fc722 chore(version): Update package versions to 3.13.0-beta.96 [skip ci] 2026-06-19 15:36:51 +00:00
Bill Wallace
17e12d53e5
fix: pnpm related dependency bugs - nothing funcitonal (#6094)
Testing this needs a release and there are no functional changes, only pnpm migration issues, so merging early for test.

* fix: pnpm related dependency bugs - nothing funcitonal

* Undo peer dependency due to non-pnpm integration issues
2026-06-19 11:33:45 -04:00
ohif-bot
ffd7884ed1 chore(version): Update package versions to 3.13.0-beta.95 [skip ci] 2026-06-18 15:25:00 +00:00
Joe Boccanfuso
0dd6571505
chore(testing): Setup new self-hosted test runner (#6067) 2026-06-18 11:21:41 -04:00
ohif-bot
6e2d53f280 chore(version): Update package versions to 3.13.0-beta.94 [skip ci] 2026-06-17 14:54:34 +00:00
Joe Boccanfuso
6acbbc0271
fix(security): Update dependencies to fix security vulnerabilities. (#6085) 2026-06-17 10:51:03 -04:00
ohif-bot
780d172201 chore(version): Update package versions to 3.13.0-beta.93 [skip ci] 2026-06-16 16:02:34 +00:00
Bill Wallace
256b8347e7
fix(docs): remove stray tool-call tags breaking the MDX build (#6081)
This is a fix to pnpm deployment which needs testing as the final part of origin/master release
No functional changes

* fix(docs): remove stray tool-call tags breaking the MDX build

platform/docs/docs/migration-guide/3p12-to-3p13/build-tooling.md ended with
two orphan closing tags (leftover tool-call serialization artifacts):

  </content>
  </invoke>

Docusaurus compiles Markdown as MDX (JSX-aware), so the orphan closing tag
failed the docs build:

  MDX compilation failed ... Unexpected closing slash in tag, expected an
  open tag first (build-tooling.md line 402)

This was the remaining blocker for build-and-deploy-docs once the
--no-frozen-lockfile change let the install step succeed. A scan of the docs
tree found no other such artifacts. Verified locally: docusaurus build now
generates static files with no MDX errors.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Update lockfile and avoid freshness check on every command

* fix(release): keep workspace:* in the repo, concretize only at publish

The release flow rewrote internal @ohif/* dependency specifiers to the concrete
version and committed them, so pnpm-lock.yaml (which records workspace links)
drifted from the manifests on every version bump. The resulting
ERR_PNPM_OUTDATED_LOCKFILE broke every frozen install: Netlify (viewer-dev),
the docs deploy, pnpm's pre-run deps check, and post-merge installs.

Keep workspace:* everywhere in the committed repo and move the concrete-version
substitution to publish time only:

- publish-version.mjs: bump each package's own `version` field only; stop
  rewriting @ohif/* dependency/peerDependency specifiers.
- publish-package.mjs: publish with `pnpm publish --no-git-checks` instead of
  `npm publish`. pnpm rewrites workspace:* to the exact version in the published
  tarball; npm would publish the literal "workspace:*", which npm/yarn consumers
  cannot resolve.
- One-time: revert the 25 workspace manifests' @ohif/* specifiers to workspace:*
  (version fields untouched) and regenerate pnpm-lock.yaml to match.

Because internal deps are workspace:* (links, not versions in the lockfile),
version bumps no longer change pnpm-lock.yaml, so it stays in sync and frozen
installs keep working.

Verified: `pnpm install --frozen-lockfile` passes, and `pnpm pack` of @ohif/core
emits a tarball whose @ohif/ui dependency is the exact version (3.13.0-beta.92),
not workspace:*.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs(ci): correct build-docs install comment for workspace:* release flow

publish-version.mjs no longer rewrites @ohif/* deps to concrete versions, so
the old comment was stale. Internal deps stay workspace:* and the lockfile
stays consistent; pnpm publish concretizes only the published tarball.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci(docs): use --frozen-lockfile now that the lockfile no longer drifts

With internal deps as workspace:* the lockfile stays in sync across version
bumps, so the docs deploy can install frozen -- failing fast on genuine
lockfile drift instead of silently reconciling. The --no-frozen-lockfile
workaround is no longer needed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci: use --frozen-lockfile in CI install steps now that the lockfile is stable

Internal @ohif/* deps are workspace:* so pnpm-lock.yaml no longer drifts; the
UNIT_TESTS/BUILD/NPM_PUBLISH installs can run frozen and fail fast on genuine
drift. Kept --no-frozen-lockfile only where it is still required: the Dockerfile
(platform/docs is excluded from the build context) and the playwright CS3D-version
step (mutates @cornerstonejs versions before installing).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* test: stability of seg load mpr test

* Better drag fix for crosshairs

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 11:59:04 -04:00
ohif-bot
da9fd9057d chore(version): Update package versions to 3.13.0-beta.92 [skip ci] 2026-06-13 01:01:06 +00:00
Bill Wallace
5cb2fb41f8
fix: pnpm deploy bugs for docs and viewer-dev (#6077)
Merging for testing since this can't be tested without a merge to master

fix(ci): use --no-frozen-lockfile for docs deploy (pnpm migration)

The Build and Deploy Docs workflow ran `pnpm install --frozen-lockfile` and
failed on every master push after the pnpm migration:

  [ERR_PNPM_OUTDATED_LOCKFILE] pnpm-lock.yaml is not up to date with
  platform/core/package.json
    - @ohif/ui (lockfile: workspace:*, manifest: 3.13.0-beta.90)

publish-version.mjs rewrites @ohif/* workspace deps from "workspace:*" to the
concrete release version and commits that bump to master, so the committed
manifests intentionally drift from pnpm-lock.yaml. Every CircleCI job already
passes --no-frozen-lockfile for exactly this reason (pnpm-workspace.yaml sets
frozenLockfile:true as the default); the docs workflow was the lone job still
using frozen and so broke the docs deploy.

Switch the docs install to --no-frozen-lockfile to match the rest of CI.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@

* fix(ci): write npm auth token to ~/.npmrc so publishes authenticate

NPM_PUBLISH wrote the registry auth token to ~/repo/.npmrc (the repo root),
but publish-package.mjs does process.chdir(packageDirectory) and runs
`npm publish` from inside each package (platform/ui, extensions/*, ...). npm
reads the project .npmrc from that package dir and the user .npmrc from
$HOME -- it never walks up to ~/repo/.npmrc -- so every publish failed with
ENEEDAUTH ("need auth ... requires you to be logged in").

publish-package.mjs catches and swallows per-package publish errors, so
NPM_PUBLISH still exited 0 and reported green; the breakage was silent. As a
result no @ohif/* package newer than 3.13.0-beta.89 (the last publish before
the pnpm migration) reached npm -- beta.90 and beta.91 are missing and the
beta dist-tag is stuck at beta.89.

Write the token to ~/.npmrc (npm per-user config, read regardless of cwd)
instead. This also stops clobbering the committed workspace-config .npmrc
(node-linker=hoisted) at the repo root, which the in-job pnpm install/build
relies on. Applied to all three auth steps for consistency.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(docker): copy preinstall.js before pnpm install in builder stage

The builder stage copies only the package.json manifests, runs
`pnpm install --no-frozen-lockfile`, and copies the rest of the source
afterward (for layer caching). But the root package.json defines a
"preinstall" lifecycle script (node preinstall.js) that pnpm runs at the
start of install -- before the source copy -- so the script file was absent
and install aborted:

  . preinstall$ node preinstall.js
  Error: Cannot find module '/usr/src/app/preinstall.js' (MODULE_NOT_FOUND)
  ERROR: process "pnpm install --no-frozen-lockfile" did not complete

This surfaced once the .npmrc COPY fix (#6076) let the build advance past
the earlier COPY failure. preinstall.js is self-contained (it no-ops without
GITHUB_TOKEN and guards the AGENTS.md/CLAUDE.md symlink with existsSync), so
copying just the script into the early manifest layer is sufficient.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(build): declare postcss plugins in platform/app for Docker build

The shared root postcss.config.js (which platform/app re-exports) loads
postcss-import, postcss-preset-env, and cssnano, but none were declared in
platform/app or the root. They only reached node_modules by being hoisted
from platform/docs (postcss-import, postcss-preset-env) and transitively
(cssnano). The Docker image excludes platform/docs via .dockerignore and
libs/@cornerstonejs is not a workspace member, so under pnpm's stricter
node-linker=hoisted the app build failed to resolve the plugins:

  Loading PostCSS "postcss-preset-env" plugin failed:
  Cannot find module 'postcss-preset-env'

(The accompanying "Can't resolve assets/woff2/latin.woff2" error was a
cascade from the broken PostCSS chain and clears with this fix.)

Declare the three plugins the config explicitly loads as devDependencies of
platform/app, pinned to the versions already resolved by working builds
(postcss-import@14.1.0, postcss-preset-env@7.8.3, cssnano@5.1.15), so the
build no longer depends on incidental hoisting from docs.

The lockfile was regenerated against a workspace:* baseline so the only
@ohif change is none -- the diff adds just the postcss plugin trees, keeping
specifiers at workspace:* per the repo's convention. Verified by building the
full Docker image locally: rspack compiles with 0 errors and the image
exports successfully.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 20:57:11 -04:00
ohif-bot
a219822ad1 chore(version): Update package versions to 3.13.0-beta.91 [skip ci] 2026-06-13 00:10:16 +00:00
Bill Wallace
e391e6de5f
fix: Fix the deployment to viewer-dev caused by missing .npmrc (#6076)
@
fix(ci): restore committed .npmrc in Docker build jobs (pnpm migration)

The pnpm migration (#6031) made the Dockerfile COPY .npmrc into the
builder stage because pnpm needs the workspace config it carries
(node-linker=hoisted, link-workspace-packages). But the Docker jobs still
ran `rm -f ./.npmrc` immediately before `docker build` -- a leftover from
when .npmrc only held npm credentials. NPM_PUBLISH overwrites the tracked
.npmrc with a publish auth token and persists it to the workspace, so the
Docker jobs deleted the file the Dockerfile requires:

  ERROR [builder 6/13] COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./
  failed to compute cache key: "/.npmrc": not found

DEPLOY_MASTER therefore failed at DOCKER_BETA_PUBLISH on every master
build after the migration (NPM_PUBLISH still pushed the version bump first,
so npm packages shipped but the latest-beta image never did -- leaving
viewer-dev.ohif.org stuck on the prior beta).

Replace `rm -f ./.npmrc` with `git checkout -- .npmrc` in the four Docker
*build* jobs so the committed, token-free workspace-config .npmrc is
restored before the build. The two manifest jobs keep `rm` since they do
not build from the Dockerfile.


@

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 20:05:44 -04:00
ohif-bot
a64fceb009 chore(version): Update package versions to 3.13.0-beta.90 [skip ci] 2026-06-12 20:08:30 +00:00
Bill Wallace
f1cc2ee13a
feat: Update to use pnpm (#6031)
* Initial pnpm change

* Install/update in pnpm sort of works

* Attempt to fix install

* fix pnpm

* Refactor build process to use RSPack instead of Webpack across multiple extensions and modes. Update package.json scripts for development and production builds, and adjust webpack configuration files to accommodate new plugin imports and settings.

* Update RSPack dependencies to version 2.0.0 across the project, enhancing compatibility and performance. Refactor webpack configuration in multiple extensions and modes to utilize the new library structure for UMD output. Adjust package.json scripts and settings for improved build processes.

* Implement migration guide for OHIF 3.13, detailing the transition from Webpack to Rspack v2, the shift to pnpm workspaces, and the increase in minimum Node.js version to 24. Include new build commands, plugin replacements, and updates to package configurations across the monorepo.

* Fix some dev:fast bugs

* Move netlify to top level and remove webpack builds

* Update version script to deal with lerna missing

* chore(tests): Update multiple screenshot test images for various specs

* feat(screenshot-reviewer): Add screenshot review tool and update package.json scripts

* fix(DICOMSRDisplayTool): Improve actor presence check in viewport

* chore(tests): Update multiple screenshot assets for various specs

* chore(tests): Integrate waitForPaintToSettle and waitForViewportsRendered in multiple specs for improved rendering stability

* chore(tests): Update screenshot assets for SEGHydration and SEGNoHydration specs

* test: update progressive loading screenshots

* jest 30 test fixes for compatibility with pnpm cs3d

* Use correct setDisplaySets instead of setDataId

* fix: Naming change for LegacyVolumeViewport3D

* Update to allow tolerance for contour tests

* update

* fix

* refactor: Replace instanceof checks with utility functions for viewport type validation

* fix: Update createSegmentationForViewport to handle undefined displaySetInstanceUID gracefully

* bun lock

* chore(pnpm): align workspace setup to cornerstone3D and address PR review

- .npmrc / pnpm-workspace.yaml: mirror cs3d (node-linker hoisted,
  strict-peer-dependencies=false, link/prefer workspace packages,
  minimumReleaseAge, frozenLockfile); sync axios 1.17.0 + tmp override
- root: packageManager pnpm@11.4.0, engines pnpm >=11, wire preinstall.js
- restore preinstall.js (token/private-repo + CLAUDE->AGENTS symlink)
- playwright.yml: keep base CS3D-integration workflow, switch only the
  package manager (bun/yarn -> pnpm) and node 20 -> 24
- webpack.base.js: revert prod devtool to source-map (drop hidden-source-map)
- remove @percy/cypress; .netlify + cli templates engines pnpm >=11
- Dockerfile pin pnpm@11; document tests/globalSetup.ts warmup
- drop dicom-sr -> measurement-tracking edge (breaks pnpm cyclic dep)

* chore(pnpm): regenerate lockfile and restore cs3d:* dev scripts

- Regenerate pnpm-lock.yaml against the resolved workspace (cycle removed,
  cs3d 4.22.10, workspace:* internal deps).
- Restore cs3d:checkout/check/build/watch/install/link/unlink helper scripts
  (dropped when taking the PR's root scripts), converted yarn -> pnpm since
  the local cornerstone3D checkout is now pnpm too.

* Merge base branch issues

* Link ohif app

* ci: pin pnpm to 11.4.0 in action-setup (was version: latest)

version: latest floats across runs and breaks reproducibility. Pin to the repo's packageManager version (pnpm@11.4.0) in both playwright and build-docs workflows.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: Accidental commit of .npmrc config

* Fix build issues

* build fix

* Dependency fixes

* fix: Dependency bug in app on extensions/modes

* Fix output configuration

* Replace percy screenshots with native cypress

* Remove percy screenshot entirely

* fix: Build issues

* force click to prevent canvas cover issues

* Enable swiftshader

* Update launch of electron

* fix: Broken size calculation

* Empty change to force a re-build

* fix(cypress): generate ui-next tailwind classes; drop unsupported electron arg

Tailwind only scanned @ohif/ui-next via ../../node_modules/@ohif/ui-next, which no longer resolves under the pnpm layout, so ui-next-unique classes (e.g. toolbar split-button sizing) were never generated. Those buttons' hit-boxes collapsed, producing Cypress 'covered by element' failures on toolbar interactions. Scan ui-next by direct filesystem path like ui/extensions/modes.

Also stop pushing --enable-unsafe-swiftshader into Electron's launchOptions.args (Electron ignores it and warns); it is supplied via ELECTRON_EXTRA_LAUNCH_ARGS in CI. The arg is still pushed for non-electron chromium (local chrome).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix(e2e): disable dev-server overlay during coverage runs

The rspack dev-server client overlay injects an iframe (id=rspack-dev-server-client-overlay) that intercepts pointer events, causing Playwright/Cypress clicks on toolbar buttons to time out (e.g. MicroscopyPanel). Disable the overlay when COVERAGE=true (e2e/Playwright webServer) while keeping it for normal local dev.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix(microscopy): provide dicom-microscopy-viewer runtime assets

The microscopy viewer is loaded at runtime via peerImport('dicom-microscopy-viewer'), which fetches the copied asset served at /dicom-microscopy-viewer/. Two issues prevented those assets from reaching dist, so the viewer never initialized and drawing produced no measurement row:

1) dicom-microscopy-viewer was declared in no workspace package.json (only under libs/@cornerstonejs), so it was not installed at root node_modules and the pluginConfig copy source did not exist. Declare it (0.48.6, matching libs) in the microscopy extension.

2) createCopyPluginToDist appended the public/dist folder name to entries that specify an explicit directory, breaking the dicom-microscopy-viewer public entry (looked for .../dynamic-import/public). Use an explicit directory as-is; only append the folder name for package-derived entries.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Update to pnpm 11.5.2 and cs3d 5.0.2

* Lock file

* fix: Update to newer versions of actions to try to fix hang

* Remove unnecessary version

* fix: Tests that are flaky

* PR comments

* Incorrect run name

* docs: Explain pluginConfig tooling

* Updated notes on pluginConfig and PR comments

* fix: resolve plugins in rsbuild build and fix directory-based asset copy

rsbuild.config.ts: merge getPluginResolveAliases() and an @ohif/app$ alias into resolve.alias, and add resolve.modules (root, platform/app, platform/ui node_modules) so extensions resolve their shared @ohif/* imports. Brings the rsbuild (dev:fast) path to parity with webpack.pwa.js / webpack.base.js.

writePluginImportsFile.js: treat a 'directory' on an extension/mode entry as the package root and copy its public/ and dist/ subdirs instead of the whole directory; public-section entries keep copying their directory verbatim via a new literalDirectory flag.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor: share resolve alias/modules between webpack and rsbuild configs

Extract the resolve.alias (@ohif/app, @, @components, ...) and the node_modules search paths into .webpack/resolveConfig.js, the single source of truth consumed by both webpack.base.js (and every per-package webpack.prod/.dev.js that merges it) and rsbuild.config.ts. getModules(srcDir) appends the building package's own source root, preserving the previous per-package behavior. Ends the drift where the rsbuild path kept missing aliases/module paths that webpack.base.js already had.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Add a timeout on git fetch and avoid all the unnecessary mirrros

* PR comments and tests

* Remove cache to prevent corrupting the cache key/setup.

* Fix stale/corrupted pnpm installer

---------

Co-authored-by: Alireza <ar.sedghi@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 16:04:56 -04:00
ohif-bot
571c2b4ff0 chore(version): Update package versions to 3.13.0-beta.89 [skip ci] 2026-06-10 00:29:36 +00:00
Alireza
6dd150d401
fix: ohif tests to run with cornerstone 3d 5.0 (#6043)
* chore(tests): Update multiple screenshot test images for various specs

* feat(screenshot-reviewer): Add screenshot review tool and update package.json scripts

* fix(DICOMSRDisplayTool): Improve actor presence check in viewport

* chore(tests): Update multiple screenshot assets for various specs

* chore(tests): Integrate waitForPaintToSettle and waitForViewportsRendered in multiple specs for improved rendering stability

* chore(tests): Update screenshot assets for SEGHydration and SEGNoHydration specs

* test: update progressive loading screenshots

* jest 30 test fixes for compatibility with pnpm cs3d

* Use correct setDisplaySets instead of setDataId

* fix: Naming change for LegacyVolumeViewport3D

* Update to allow tolerance for contour tests

* update

* fix

* refactor: Replace instanceof checks with utility functions for viewport type validation

* fix: Update createSegmentationForViewport to handle undefined displaySetInstanceUID gracefully

* bun lock

* fix: Install cs3d with pnpm instead of bun

* Update node version for playwright

* Update to v5.0.0 of cs3d

* fix: Build dependency

* audit

* Change to a web await retry assert

* Fix timing related test failures

* fix: Freehand close

---------

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2026-06-09 20:25:14 -04:00
ohif-bot
a27f779f0b chore(version): Update package versions to 3.13.0-beta.88 [skip ci] 2026-06-05 12:51:24 +00:00
Joe Boccanfuso
99c6154343
fix(security): Patch axios vulnerabilities. (#6063) 2026-06-05 08:46:09 -04:00
ohif-bot
0885468bb9 chore(version): Update package versions to 3.13.0-beta.87 [skip ci] 2026-05-29 00:13:12 +00:00
Joe Boccanfuso
9396e01107
chore: Fix netlify deploy by updating various @babel dependencies. (#6049) 2026-05-28 20:08:43 -04:00
ohif-bot
1aaae125ea chore(version): Update package versions to 3.13.0-beta.86 [skip ci] 2026-05-28 19:03:08 +00:00
Joe Boccanfuso
ff3e855809
chore: Fix netlify deploy. (#6047) 2026-05-28 14:57:52 -04:00
ohif-bot
550dec742d chore(version): Update package versions to 3.13.0-beta.85 [skip ci] 2026-05-28 16:33:24 +00:00
Joe Boccanfuso
daae4c144e
feat(WorkList): New Study List (WorkList based on ui-next); old study list renamed to LegacyWorklist (#6005)
---------

Co-authored-by: Dan Rukas <dan.rukas@gmail.com>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2026-05-28 12:26:30 -04:00
ohif-bot
9e7a3586ce chore(version): Update package versions to 3.13.0-beta.84 [skip ci] 2026-05-27 14:43:26 +00:00
Joe Boccanfuso
bdcafc12de
fix(security): Add tmp as a resolution to fix security vulnerability. (#6044) 2026-05-27 10:38:45 -04:00
ohif-bot
5ea22fc34f chore(version): Update package versions to 3.13.0-beta.83 [skip ci] 2026-05-26 16:28:06 +00:00
Ghadeer Albattarni
0c1ca6b04a
fix(segmentation): restore navigation for duplicated contour segments (#6038)
---------

Co-authored-by: diattamo <mmddiatta@gmail.com>
2026-05-26 12:22:46 -04:00
ohif-bot
9a2d2c3d13 chore(version): Update package versions to 3.13.0-beta.82 [skip ci] 2026-05-22 17:53:48 +00:00
Ghadeer Albattarni
5762095cfa
test(contour): add test for RT contour position after viewport maximize/restore (#6036) 2026-05-22 13:49:00 -04:00
ohif-bot
becd208924 chore(version): Update package versions to 3.13.0-beta.81 [skip ci] 2026-05-21 01:24:47 +00:00
diattamo
2258c7957a
feat(tests): Add tests for duplicating contour segments (#6002) 2026-05-20 21:18:58 -04:00
ohif-bot
d186749c5a chore(version): Update package versions to 3.13.0-beta.80 [skip ci] 2026-05-20 01:46:13 +00:00
Bill Wallace
09093b3f0a
Update to use beta 5.0 of CS3D (#5904)
* Update to use beta 5.0

* fix: unit tests

* fix: Allow slow server/test rendering to still work

* Update tests to use viewport grid compare

* Fix storage of stale retries actual/diff files

* cs3d linking fixees

* Linking for cs3d metadata

* Use metadata import for suv scaling

* Fix suv import

* Use type for import

* fix: Metadata registration ordering

* Use beta for upstream

* Merge from origin/master

* Revert tests to master

* Undo beta version changes

* Revert bun.lock file to that of master.

* Reduce test failure retries to one per test. Cap the number of failed total tests to 10. Replace the JSON reporter with the HTML reporter.

* Add generic provider back in

* Deprecate OHIF versions of cs3d utils

* fix

* Undo some cs3d beta dependencies so this PR could be merged

* Build fix

* Fixing build issues

* build issue

* bun lock

* Temporary cache clear to resolve build issue

* Cache bust

* Remove the babel hoist fix attempt

* Cache netlify toml issue

* Fix netlify cache issue

* Try to fix cache dependency issue

* Try update resolutions

* babel hoist fix

* fix: Remove netlify cache bust

* Revert pinned versions

* PR comments on duplicated suv-factors

* Undo lock changes and isEqual add

---------

Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
Co-authored-by: Alireza <ar.sedghi@gmail.com>
2026-05-19 21:41:37 -04:00
ohif-bot
ef8bb5559a chore(version): Update package versions to 3.13.0-beta.79 [skip ci] 2026-05-19 20:04:38 +00:00
Ghadeer Albattarni
95251ab670
fix(seg): prevent viewport orientation change when loading SEG in manual grid layout (#6021) 2026-05-19 15:59:42 -04:00
ohif-bot
1e91285c60 chore(version): Update package versions to 3.13.0-beta.78 [skip ci] 2026-05-19 19:33:03 +00:00
Ghadeer Albattarni
27af6821b5
fix(measurements): read displayName in SplineROI and PlanarFreehandROI reports (#5908) 2026-05-19 15:28:05 -04:00
ohif-bot
6f92234111 chore(version): Update package versions to 3.13.0-beta.77 [skip ci] 2026-05-19 18:50:02 +00:00
Ghadeer Albattarni
527cfb0ae8
fix(segmentation): remove thresholdRange label in double-range tool settings (#5931) 2026-05-19 14:45:25 -04:00
ohif-bot
64fa240dfa chore(version): Update package versions to 3.13.0-beta.76 [skip ci] 2026-05-19 13:29:35 +00:00
Ghadeer Albattarni
77cd9394d2
test(segmentation): add e2e test for deleting segmentation on second reload (#6013) 2026-05-19 09:24:49 -04:00
ohif-bot
8e8f574174 chore(version): Update package versions to 3.13.0-beta.75 [skip ci] 2026-05-18 14:40:35 +00:00
Joe Boccanfuso
fe16e80cf3
test(e2e): update Playwright screenshots and add better tests and assertions for area calculations (#6022)
* Add (better) assertions for area calculation fixes.
* Add SVG and measurement side panel area for freehand ROI test.
* Add Playwright viewport screenshot scope migration guide.
* Update cornerstonjs dependencies to 4.22.8. Ensure all versions of @babel/preset-env are 7.29.5.

---------

Co-authored-by: Ghadeer Albattarni <165973963+GhadeerAlbattarni@users.noreply.github.com>
2026-05-18 10:36:05 -04:00
ohif-bot
cb0cbe702c chore(version): Update package versions to 3.13.0-beta.74 [skip ci] 2026-05-15 19:11:45 +00:00
Joe Boccanfuso
55b46f39c6
fix(security): Update various dependencies to fix security vulnerabilities. (#6023) 2026-05-15 15:07:13 -04:00
ohif-bot
01b5c86826 chore(version): Update package versions to 3.13.0-beta.73 [skip ci] 2026-05-13 17:16:29 +00:00
Ibrahim
f231eff598
feat(llm): add instructions md file for claude and other LLM tools (#6017)
* add claude instructions file

* update structure

* Update llm/AGENTS.md

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* Update llm/AGENTS.md

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* move to root

* symlink

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-05-13 13:11:55 -04:00
ohif-bot
b058ec7c72 chore(version): Update package versions to 3.13.0-beta.72 [skip ci] 2026-05-12 17:26:24 +00:00
Ghadeer Albattarni
397aa4d0e3
fix(measurement-tracking): restore tracked state on undo after Delete all (#5994)
* fix: always show delete confirmation when measurements exist
2026-05-12 13:22:25 -04:00
ohif-bot
8cd8ccc163 chore(version): Update package versions to 3.13.0-beta.71 [skip ci] 2026-05-07 22:51:22 +00:00
Ghadeer Albattarni
37e19f734a
fix: remove waitForVolumeLoad from main toolbar page object (#6004) 2026-05-07 18:47:27 -04:00
ohif-bot
13305de99c chore(version): Update package versions to 3.13.0-beta.70 [skip ci] 2026-05-07 19:46:54 +00:00
Ghadeer Albattarni
9cf3149d2a
test(e2e): replace waitForVolumeLoad with viewport render waits (#6000) 2026-05-07 15:42:12 -04:00
ohif-bot
fbea158473 chore(version): Update package versions to 3.13.0-beta.69 [skip ci] 2026-05-06 17:53:50 +00:00
Joe Boccanfuso
5e624f1387
fix(security): Patch axios security vulnerabilities. (#5998)
Patch axios security vulnerabilities.
2026-05-06 13:49:13 -04:00
ohif-bot
d792bf7f80 chore(version): Update package versions to 3.13.0-beta.68 [skip ci] 2026-05-05 19:27:31 +00:00
Joe Boccanfuso
979d619f7c
fix(ToolGroupService): Centralize tool binding persistence and provide API to add and remove persisted bindings. (#5989)
* Reset crosshair modifier to default when resetting user preferences.

* Apply bindings when loading persisted bindings.
2026-05-05 15:22:43 -04:00
ohif-bot
5bccf0a753 chore(version): Update package versions to 3.13.0-beta.67 [skip ci] 2026-04-30 14:18:14 +00:00
Dan Rukas
691e26731f
feat(ui-next): Adds toggle state for ToolButton and Crosshair example (#5914)
Co-authored-by: sedghi <ar.sedghi@gmail.com>
2026-04-30 10:13:58 -04:00
ohif-bot
e6816f6de4 chore(version): Update package versions to 3.13.0-beta.66 [skip ci] 2026-04-29 16:01:57 +00:00
Joe Boccanfuso
468e5734a9
fix(config url): Hardening fetch options. (#5985) 2026-04-29 11:57:33 -04:00
ohif-bot
90abd00936 chore(version): Update package versions to 3.13.0-beta.65 [skip ci] 2026-04-29 14:37:25 +00:00
Ghadeer Albattarni
62620afb9b
test( zoomIn-tool): verify horizontal flip is preserved in magnified view (#5983) 2026-04-29 10:32:27 -04:00
ohif-bot
03860030bd chore(version): Update package versions to 3.13.0-beta.64 [skip ci] 2026-04-27 17:00:15 +00:00
Ghadeer Albattarni
f8ccf9ff2e
fix(seg): prevent segmentations from spreading to all viewports before hydration confirmation in 3D four-up (#5967) 2026-04-27 12:55:12 -04:00
ohif-bot
c9c4f11b82 chore(version): Update package versions to 3.13.0-beta.63 [skip ci] 2026-04-27 11:11:23 +00:00
Joe Boccanfuso
f3cca21e49
fix(security): refine dynamic config URL trust policy and document trusted-origin behavior (#5973)
* fix(security): refine dynamic config URL trust policy and document trusted-origin behavior

* Update documentation for Authorization and Authentication.

* Add isSameOrigin to resolveConfigFetchPolicy return value.
2026-04-27 07:06:06 -04:00
ohif-bot
5ba8339037 chore(version): Update package versions to 3.13.0-beta.62 [skip ci] 2026-04-23 17:49:30 +00:00
Joe Boccanfuso
1fc97fea43
fix(security): Patch protobufjs for CVE-2026-41242. (#5974) 2026-04-23 13:45:09 -04:00
ohif-bot
7008029cdc chore(version): Update package versions to 3.13.0-beta.61 [skip ci] 2026-04-23 12:51:09 +00:00
Joe Boccanfuso
8fc0dc16e9
feat(slice scrollbar): Integrate ViewportSliceProgressScrollbar with customizations and docs (#5960)
Co-authored-by: Dan Rukas <dan.rukas@gmail.com>
2026-04-23 08:46:03 -04:00
ohif-bot
8a2fee4d8a chore(version): Update package versions to 3.13.0-beta.60 [skip ci] 2026-04-21 16:00:22 +00:00
Joe Boccanfuso
eede569a88
fix(configuration): Harden dynamic datasource URL trust boundaries and credential handling. (#5963)
* fix(configuration): Harden dynamic datasource URL trust boundaries and credential handling.

* Remove testing configuration.

* Update policies for runtime ?url=... datasource loading.

* PR feedback.
2026-04-21 11:55:14 -04:00
ohif-bot
51e6b35dbb chore(version): Update package versions to 3.13.0-beta.59 [skip ci] 2026-04-16 21:51:43 +00:00
Ghadeer Albattarni
792f78e35f
chore: update Cornerstone3D to v4.21.7 (#5964) 2026-04-16 17:47:00 -04:00
Bill Wallace
cc5dc20164
fix: Use newer ONNX version and load without errors (#5854)
* fix: Use newer ONNX version and load without errors

* Only changes to enable SAM again

* fix(seg hydration): auto-hydrate RT struct on second load with disableConfirmationPrompts (#5875)

* chore(version): Update package versions to 3.13.0-beta.34 [skip ci]

* fix(Threshold tool): Threshold tool no longer becomes deselected when the Dynamic option is selected (#5884)

fix(Threshold tool): Added 'ThresholdCircularBrushDynamic' to the toolNames array so the evaluator correctly recognizes it as an active state for the Threshold button when Dynamic mode is selected.

* chore(version): Update package versions to 3.13.0-beta.35 [skip ci]

* fix: Modalities in study list should select starts with as primary (#5886)

* chore(version): Update package versions to 3.13.0-beta.36 [skip ci]

* fix(security): Bump tar version to address CVE-2026-31802. (#5893)

* chore(version): Update package versions to 3.13.0-beta.37 [skip ci]

* fix(segmentation): Display "No description S:{series number} {modality}" for segmentations with no label. (#5874)

* Bump CS3D dependency to get the fallbackLabel field additions.

* chore(version): Update package versions to 3.13.0-beta.38 [skip ci]

* fix(window level): The window level value is not displayed by default on all the viewports when selecting common/custom layout and TMTV. (#5865)

* fix(window level): Set up listener for viewport availability such that the initial window level can be read and displayed.

* PR feedback.

* PR feedback.

---------

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>

* chore(version): Update package versions to 3.13.0-beta.39 [skip ci]

* fix(security): Bump flattened version to address CVE-2026-32141. (#5897)

* chore(version): Update package versions to 3.13.0-beta.40 [skip ci]

* fix(sr-hydration): enable hydration and arrow navigation for 3D SR measurements (#5887)

Joe is away, so approving based on the code having the requested change, and otherwise looking good/passing tests.

* fix(sr-hydration): enable hydration and arrows navigation for 3D SR measurements

* test: add automated test for SR measurement navigation with arrows after hydration

* add cross-study warning in the 3D branch

* test: address reviewer feedback for the test

* fix: support 3D and 2D annotations for SR hydration

* test: improve navigation to first image

---------

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>

* chore(version): Update package versions to 3.13.0-beta.41 [skip ci]

* feat: Add combined build (#5895)

* Add combined build

* Link script location update

* Security and validation fixes

* Allow specifying target path in PR description

* fix: Version match

* Fix build detection issue

* fix: Playwright deploy

* Separate out the branch merge guard

* Update docs and link info

* test: Update the layout change to wait for network idle

* Move audit late so the rest of the build can be worked on

* Add text with network check to ensure we see this change is updated

* Attempt to fix the mpr loading on ohif-downstream

* PR review comments

* Update docs

* Update to CS3D 4.20.0

* PR comments

* Add log on ohif-integration builds

* Update build test

* Removed unused space to kickoff build

* chore(version): Update package versions to 3.13.0-beta.42 [skip ci]

* fix(SR): Added support for spline and live wire SR items. (#5870)

* fix(SR): Added support for spline and live wire SR items.

* Apply suggestion from @greptile-apps[bot]

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* Add a script to checkout a worktree for test builds

* fix: Allow download for testing sr validator

* Remove script that wasn't intended to be included

* Bump CS3D version.

* PR comments - simplify code and use single codepath for download

* Allow both download and save buttons for SEG and RTSTRUCT

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>

* chore(version): Update package versions to 3.13.0-beta.43 [skip ci]

* chore(tests): contour segment interactions e2e tests - rename and togglevisibility (#5891)

* chore(version): Update package versions to 3.13.0-beta.44 [skip ci]

* chore(refactor): use public appConfig getter instead of private _appConfig field (#5923)

* chore(version): Update package versions to 3.13.0-beta.45 [skip ci]

* refactor(tests): update viewport page object usage to async and update all effected tests (#5927)

* chore(version): Update package versions to 3.13.0-beta.46 [skip ci]

* fix: prevent black viewport when navigating series with client-created segmentation (#5919)

* chore(version): Update package versions to 3.13.0-beta.47 [skip ci]

* fix(measurement): Restore viewport interactivity when deleting in-progress Spline or Livewire measurement (#5905)

* chore(version): Update package versions to 3.13.0-beta.48 [skip ci]

* fix(segmentation): restrict overlay segmentation menu to same frame of reference as viewport background display set  (#5900)

- Add FrameOfReferenceUID to SEG and RTSTRUCT displaySet in SOP Class Handlers so the FOR is available for filtering
- Sync optimisticOverlayDisplaySets when background display set changes so the overlay menu reflects the correct state after a background switch
- Add FOR matching guard to the hydrate segmentation synchronizer to prevent the hydration synchronizer from blindly mirroring segmentations from a source viewport to a target viewport if their primary Frames of Reference do not align.
- fix segmentation overlay order reversal on viewport re-render

* chore(version): Update package versions to 3.13.0-beta.49 [skip ci]

* fix(security): update dependencies to fix security vulnerabilities (#5936)

* chore(version): Update package versions to 3.13.0-beta.50 [skip ci]

* fix(security): Update yarn.lock that was missed in PR #5936. (#5940)

* chore(version): Update package versions to 3.13.0-beta.51 [skip ci]

* feat(component): Adds SmartScrollbar to ui-next - OHIF-2558 (#5924)

Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>

* fix(defaultRouteInit): pass sorted display sets to hanging protocol for deterministic viewport order (#5933)

fix: pass sorted display sets to hanging protocol for deterministic viewport order

The `applyHangingProtocol` function already sorts display sets by modality
priority and series number into `sortedDisplaySets`, but the unsorted
`displaySets` array was being passed to `hangingProtocolService.run()`.

This caused non-deterministic viewport ordering across page loads because
`displaySetService.getActiveDisplaySets()` returns display sets in creation
order, which depends on asynchronous network responses.

Made-with: Cursor

* chore(version): Update package versions to 3.13.0-beta.52 [skip ci]

* revert: rename DisplaySet.frameOfReferenceUID back to FrameOfReferenceUID (#5943)

* chore(version): Update package versions to 3.13.0-beta.53 [skip ci]

* fix(cornerstone): read FrameOfReferenceUID from display set in viewport service (#5950)

* chore(version): Update package versions to 3.13.0-beta.54 [skip ci]

* fix: ignore auth in git (#5955)

* chore(version): Update package versions to 3.13.0-beta.55 [skip ci]

* ONNX latest version

* chore(version): Update package versions to 3.13.0-beta.56 [skip ci]

* bun lock

* fix high sev mathjs issue

* Revert onnx changes

* Update to recent CS3D version

* Undo unneeded change

* Add null check

* Undo unneeded change

---------

Co-authored-by: Ghadeer Albattarni <165973963+GhadeerAlbattarni@users.noreply.github.com>
Co-authored-by: ohif-bot <danny.ri.brown+ohif-bot@gmail.com>
Co-authored-by: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: diattamo <mmddiatta@gmail.com>
Co-authored-by: Pedro Köhler <pedrokohlerbh@gmail.com>
Co-authored-by: Dan Rukas <dan.rukas@gmail.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
Co-authored-by: Alireza <ar.sedghi@gmail.com>
2026-04-15 12:04:00 -04:00
ohif-bot
31727c0668 chore(version): Update package versions to 3.13.0-beta.58 [skip ci] 2026-04-14 18:00:56 +00:00
Bill Wallace
760adc50d6
Reformat in HP MPR (#5717)
* Reformat in HP MPR

* fix: Orientation markers should work
2026-04-14 13:56:20 -04:00
ohif-bot
6e4ef68a83 chore(version): Update package versions to 3.13.0-beta.57 [skip ci] 2026-04-13 13:36:14 +00:00
Alireza
f5a66b9eea
fix: Enhance multiframe instance handling and improve instance valida… (#5956)
fix: Enhance multiframe instance handling and improve instance validation

- Updated `getDisplaySetInfo` to ensure local file frame imageIds resolve correctly, falling back to the source multiframe instance when necessary.
- Improved instance filtering in `isDisplaySetReconstructable` to handle undefined instances more robustly.
- Modified `App` prop types to make `routerBasename` optional and added new props for loading indicators and data sources.
- Refactored `CinePlayer` component to replace Button with a div for better accessibility and interaction.
2026-04-13 09:31:28 -04:00
ohif-bot
3069d33c99 chore(version): Update package versions to 3.13.0-beta.56 [skip ci] 2026-04-10 20:57:30 +00:00
Bill Wallace
f6bbd5c779
fix: A couple of changes to enable cs3d integration build (#5944)
* fix: A couple of changes to enable cs3d integration build

* Bun update

* fix: Crosshairs tests due to order changes

* Fix a race in DicomTagBrowser.spec.ts and update the comparison for the screenshot for seg hydration.

* Fix sorting issues by using consistent sort

* fix: Inconsistency in scoord loader.  Will need an update to screenshot

* Fix crosshairs stability issues and random order issues in Scoord

* Update the comparison image

* Update navigate image

* fix: Axios issue

* Update to current CS3D
2026-04-10 16:51:37 -04:00
ohif-bot
66c8e0c195 chore(version): Update package versions to 3.13.0-beta.55 [skip ci] 2026-04-10 19:21:27 +00:00
Alireza
961eea1c39
fix: ignore auth in git (#5955) 2026-04-10 15:16:55 -04:00
ohif-bot
0ddf32eef2 chore(version): Update package versions to 3.13.0-beta.54 [skip ci] 2026-04-08 15:59:34 +00:00
Ghadeer Albattarni
d219171e25
fix(cornerstone): read FrameOfReferenceUID from display set in viewport service (#5950) 2026-04-08 11:54:05 -04:00
ohif-bot
6cbad4fab7 chore(version): Update package versions to 3.13.0-beta.53 [skip ci] 2026-04-06 16:08:24 +00:00
Ghadeer Albattarni
0e933c256e
revert: rename DisplaySet.frameOfReferenceUID back to FrameOfReferenceUID (#5943) 2026-04-06 12:03:28 -04:00
ohif-bot
74e656b174 chore(version): Update package versions to 3.13.0-beta.52 [skip ci] 2026-04-06 13:27:41 +00:00
Pedro Köhler
68b10d365a
fix(defaultRouteInit): pass sorted display sets to hanging protocol for deterministic viewport order (#5933)
fix: pass sorted display sets to hanging protocol for deterministic viewport order

The `applyHangingProtocol` function already sorts display sets by modality
priority and series number into `sortedDisplaySets`, but the unsorted
`displaySets` array was being passed to `hangingProtocolService.run()`.

This caused non-deterministic viewport ordering across page loads because
`displaySetService.getActiveDisplaySets()` returns display sets in creation
order, which depends on asynchronous network responses.

Made-with: Cursor
2026-04-06 09:23:37 -04:00
Dan Rukas
91a8715795
feat(component): Adds SmartScrollbar to ui-next - OHIF-2558 (#5924)
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2026-04-06 09:21:13 -04:00
ohif-bot
fdf26aa8b9 chore(version): Update package versions to 3.13.0-beta.51 [skip ci] 2026-04-03 18:22:25 +00:00
Joe Boccanfuso
84ddf78c87
fix(security): Update yarn.lock that was missed in PR #5936. (#5940) 2026-04-03 14:17:40 -04:00
ohif-bot
d7ab507f5b chore(version): Update package versions to 3.13.0-beta.50 [skip ci] 2026-04-02 22:10:46 +00:00
Joe Boccanfuso
5358a3985a
fix(security): update dependencies to fix security vulnerabilities (#5936) 2026-04-02 18:06:19 -04:00
ohif-bot
d670fb168c chore(version): Update package versions to 3.13.0-beta.49 [skip ci] 2026-04-02 12:57:23 +00:00
Ghadeer Albattarni
b9029ef6f8
fix(segmentation): restrict overlay segmentation menu to same frame of reference as viewport background display set (#5900)
- Add FrameOfReferenceUID to SEG and RTSTRUCT displaySet in SOP Class Handlers so the FOR is available for filtering
- Sync optimisticOverlayDisplaySets when background display set changes so the overlay menu reflects the correct state after a background switch
- Add FOR matching guard to the hydrate segmentation synchronizer to prevent the hydration synchronizer from blindly mirroring segmentations from a source viewport to a target viewport if their primary Frames of Reference do not align.
- fix segmentation overlay order reversal on viewport re-render
2026-04-02 08:52:23 -04:00
ohif-bot
a875d7de1f chore(version): Update package versions to 3.13.0-beta.48 [skip ci] 2026-04-01 20:57:11 +00:00
Ghadeer Albattarni
7929f0898f
fix(measurement): Restore viewport interactivity when deleting in-progress Spline or Livewire measurement (#5905) 2026-04-01 16:52:14 -04:00
ohif-bot
f999f3eab5 chore(version): Update package versions to 3.13.0-beta.47 [skip ci] 2026-03-28 23:24:57 +00:00
Ghadeer Albattarni
e66fb5a2b8
fix: prevent black viewport when navigating series with client-created segmentation (#5919) 2026-03-28 19:20:49 -04:00
ohif-bot
efac34dfe5 chore(version): Update package versions to 3.13.0-beta.46 [skip ci] 2026-03-27 20:41:39 +00:00
Ghadeer Albattarni
2a728b244c
refactor(tests): update viewport page object usage to async and update all effected tests (#5927) 2026-03-27 16:37:42 -04:00
ohif-bot
485f0d75d9 chore(version): Update package versions to 3.13.0-beta.45 [skip ci] 2026-03-27 17:18:56 +00:00
Pedro Köhler
d7dd12ad67
chore(refactor): use public appConfig getter instead of private _appConfig field (#5923) 2026-03-27 13:14:13 -04:00
ohif-bot
9718ecc407 chore(version): Update package versions to 3.13.0-beta.44 [skip ci] 2026-03-27 13:59:09 +00:00
diattamo
fe762b68e8
chore(tests): contour segment interactions e2e tests - rename and togglevisibility (#5891) 2026-03-27 09:54:36 -04:00
ohif-bot
87eeefdf1b chore(version): Update package versions to 3.13.0-beta.43 [skip ci] 2026-03-17 13:03:35 +00:00
Joe Boccanfuso
1d4802c2a3
fix(SR): Added support for spline and live wire SR items. (#5870)
* fix(SR): Added support for spline and live wire SR items.

* Apply suggestion from @greptile-apps[bot]

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* Add a script to checkout a worktree for test builds

* fix: Allow download for testing sr validator

* Remove script that wasn't intended to be included

* Bump CS3D version.

* PR comments - simplify code and use single codepath for download

* Allow both download and save buttons for SEG and RTSTRUCT

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2026-03-17 08:59:47 -04:00
ohif-bot
69d8ad63f3 chore(version): Update package versions to 3.13.0-beta.42 [skip ci] 2026-03-17 11:55:55 +00:00
Bill Wallace
1df671e9ab
feat: Add combined build (#5895)
* Add combined build

* Link script location update

* Security and validation fixes

* Allow specifying target path in PR description

* fix: Version match

* Fix build detection issue

* fix: Playwright deploy

* Separate out the branch merge guard

* Update docs and link info

* test: Update the layout change to wait for network idle

* Move audit late so the rest of the build can be worked on

* Add text with network check to ensure we see this change is updated

* Attempt to fix the mpr loading on ohif-downstream

* PR review comments

* Update docs

* Update to CS3D 4.20.0

* PR comments

* Add log on ohif-integration builds

* Update build test

* Removed unused space to kickoff build
2026-03-17 07:52:17 -04:00
ohif-bot
15ef4c2e0f chore(version): Update package versions to 3.13.0-beta.41 [skip ci] 2026-03-16 13:40:10 +00:00
Ghadeer Albattarni
7a38903b19
fix(sr-hydration): enable hydration and arrow navigation for 3D SR measurements (#5887)
Joe is away, so approving based on the code having the requested change, and otherwise looking good/passing tests.

* fix(sr-hydration): enable hydration and arrows navigation for 3D SR measurements

* test: add automated test for SR measurement navigation with arrows after hydration

* add cross-study warning in the 3D branch

* test: address reviewer feedback for the test

* fix: support 3D and 2D annotations for SR hydration

* test: improve navigation to first image

---------

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2026-03-16 09:36:56 -04:00
ohif-bot
40a472a9b1 chore(version): Update package versions to 3.13.0-beta.40 [skip ci] 2026-03-13 19:28:45 +00:00
Joe Boccanfuso
d8d376edaf
fix(security): Bump flattened version to address CVE-2026-32141. (#5897) 2026-03-13 15:25:21 -04:00
ohif-bot
d0bab783c7 chore(version): Update package versions to 3.13.0-beta.39 [skip ci] 2026-03-13 14:15:45 +00:00
Joe Boccanfuso
fe1ecfe0cc
fix(window level): The window level value is not displayed by default on all the viewports when selecting common/custom layout and TMTV. (#5865)
* fix(window level): Set up listener for viewport availability such that the initial window level can be read and displayed.

* PR feedback.

* PR feedback.

---------

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2026-03-13 10:12:07 -04:00
ohif-bot
54d9ea39bf chore(version): Update package versions to 3.13.0-beta.38 [skip ci] 2026-03-12 22:42:59 +00:00
Joe Boccanfuso
7b5d0ce40e
fix(segmentation): Display "No description S:{series number} {modality}" for segmentations with no label. (#5874)
* Bump CS3D dependency to get the fallbackLabel field additions.
2026-03-12 18:39:14 -04:00
ohif-bot
15f14e34e4 chore(version): Update package versions to 3.13.0-beta.37 [skip ci] 2026-03-12 00:56:47 +00:00
Joe Boccanfuso
d015b2e32a
fix(security): Bump tar version to address CVE-2026-31802. (#5893) 2026-03-11 20:53:17 -04:00
ohif-bot
197b80eefd chore(version): Update package versions to 3.13.0-beta.36 [skip ci] 2026-03-11 18:31:47 +00:00
Bill Wallace
b83e978df8
fix: Modalities in study list should select starts with as primary (#5886) 2026-03-11 14:28:20 -04:00
ohif-bot
4c2bd8d5ed chore(version): Update package versions to 3.13.0-beta.35 [skip ci] 2026-03-09 19:47:36 +00:00
Joe Boccanfuso
889026f8a9
fix(Threshold tool): Threshold tool no longer becomes deselected when the Dynamic option is selected (#5884)
fix(Threshold tool): Added 'ThresholdCircularBrushDynamic' to the toolNames array so the evaluator correctly recognizes it as an active state for the Threshold button when Dynamic mode is selected.
2026-03-09 15:43:56 -04:00
ohif-bot
1aaf569825 chore(version): Update package versions to 3.13.0-beta.34 [skip ci] 2026-03-09 13:11:54 +00:00
Ghadeer Albattarni
6f773f9972
fix(seg hydration): auto-hydrate RT struct on second load with disableConfirmationPrompts (#5875) 2026-03-09 09:08:21 -04:00
ohif-bot
0f822aaf48 chore(version): Update package versions to 3.13.0-beta.33 [skip ci] 2026-03-05 20:12:21 +00:00
Joe Boccanfuso
61a1fccd7d
fix(security): Bump svgo and tar to fix vulnerabilities. (#5877) 2026-03-05 15:09:05 -05:00
ohif-bot
c842642341 chore(version): Update package versions to 3.13.0-beta.32 [skip ci] 2026-03-05 18:00:06 +00:00
TFRadicalImaging
70f76aeba1
feat(ecg): add DICOM ECG waveform extension (#5856)
* feat(ecg): add DICOM ECG waveform extension

Introduce @ohif/extension-dicom-ecg for rendering DICOM waveform (ECG)
data. Register the extension in the basic mode and pluginConfig.json,
and remove ECG from NON_IMAGE_MODALITIES so waveform display sets are
handled by the new viewport.

* refactor(ecg): move ECG support into cornerstone extension per review feedback

- Remove standalone dicom-ecg extension; fold all ECG functionality into
  the cornerstone extension as requested by reviewer
- Add ECG SOP class handler (DicomEcgSopClassHandler) to the cornerstone
  extension getSopClassHandlerModule, registering ECG waveform metadata
  via genericMetadataProvider on display set creation
- Move ECG helpers (buildEcgModule, decodeInt16Multiplex, base64ToArrayBuffer)
  into extensions/cornerstone/src/utils/ecgMetadata.ts
- Handle ECGViewport in CornerstoneViewportService._setDisplaySets by
  detecting ECGViewport instanceof and calling setEcg(imageId) directly,
  so OHIFCornerstoneViewport can be used without a custom ECG viewport component
- Add ECG support to getCornerstoneViewportType utility
- Update basic mode to reference the cornerstone extension's ECG SOP handler
  and use the base cornerstone viewport for ECG display sets
- Migrate ecgMetadata and getCornerstoneViewportType tests

* chore: revert bun.lock to upstream origin/master

---------

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2026-03-05 12:56:52 -05:00
ohif-bot
30bb5d0652 chore(version): Update package versions to 3.13.0-beta.31 [skip ci] 2026-03-04 20:32:11 +00:00
Ghadeer Albattarni
2358a73c3c
fix(microscopy): rename measurement in microscopy mode (#5866) 2026-03-04 15:28:41 -05:00
ohif-bot
df22109013 chore(version): Update package versions to 3.13.0-beta.30 [skip ci] 2026-03-04 20:25:47 +00:00
Ghadeer Albattarni
7e10830d58
fix(segmentation): segment bidirectional tool error and show toast notification when no segment is drawn (#5861) 2026-03-04 15:22:10 -05:00
ohif-bot
6db0bc2d4c chore(version): Update package versions to 3.13.0-beta.29 [skip ci] 2026-03-04 17:27:01 +00:00
Joe Boccanfuso
be8e266a80
fix(security): Address various security vulnerabilities. (#5869) 2026-03-04 12:23:49 -05:00
ohif-bot
b3e5f64694 chore(version): Update package versions to 3.13.0-beta.28 [skip ci] 2026-03-03 21:56:46 +00:00
diattamo
f2ed4c9e6f
test(ContourSegNavigation): Add e2e tests for contour segmentation navigation (#5834)
---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-03-03 16:52:03 -05:00
ohif-bot
b6d362f375 chore(version): Update package versions to 3.13.0-beta.27 [skip ci] 2026-03-02 13:16:59 +00:00
Ghadeer Albattarni
92011c587f
chore(test): add FreehandROI test that MEASUREMENT_ADDED does not fire when clicking annotation text (#5846) 2026-03-02 08:12:28 -05:00
ohif-bot
c9dea4e6cc chore(version): Update package versions to 3.13.0-beta.26 [skip ci] 2026-02-28 09:54:42 +00:00
Silas Shellenbarger
6a3caa1ac9
fix capture not maintaining flip/rotate state (#5843)
* fix capture not maintaining flip/rotate state

* fix capture not maintaining flip/rotate state

---------

Co-authored-by: silasshellenbarger <sdshe@Silas-Computer.localdomain>
2026-02-28 04:50:35 -05:00
ohif-bot
2b486f16ed chore(version): Update package versions to 3.13.0-beta.25 [skip ci] 2026-02-26 14:54:56 +00:00
Bill Wallace
5370b9382e
fix: Update CS3D 4.18.2 (#5837)
* Update CS3D 4.17.4

* fix: Update to cs3d 4.18.2

* audit issues

* audit fixes

* fix: redos issue

* Simplify dependencies to fix audit alerts.

---------

Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2026-02-26 09:49:44 -05:00
ohif-bot
67f9de4ab6 chore(version): Update package versions to 3.13.0-beta.24 [skip ci] 2026-02-24 13:57:26 +00:00
Ghadeer Albattarni
d11d6d401b
fix: prevent viewer crash when opening DICOM Tag Browser from empty viewport (#5827) 2026-02-24 08:53:05 -05:00
Ghadeer Albattarni
a8f709982f
fix(ui-next): Add validation for opacity and border inputs in the segmentation panel - OHIF-2332 (#5819) 2026-02-24 08:50:07 -05:00
ohif-bot
9e4c0bb7a2 chore(version): Update package versions to 3.13.0-beta.23 [skip ci] 2026-02-23 22:29:33 +00:00
Bill Wallace
eeca1f7a7b
fix: palette color 8 encoded 16 (#5823)
* fix: Detect 16 bit when 8 declared

* Update bun lock with dcmjs changes

* PR comments

* Update package versions

* fix: Palette color lookup table data for dcmjs parsed data

* fix: Published version should match (#5813)

* fix: Published version should match

* Move version number update to package.json

* fix: Netlify version number update

* Try updating platform app vesion too

* PR comments

---------

Co-authored-by: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com>

* Update latest cs3d

* formatting

* fix: Use 64k instead of 0 for number of entries

* fix: Revert CS3D version to see test issues

* Updated screenshots for ArrowAnnotate.spec.ts.

* Update CS3D version

* fix: Update cs3d 4.17.4

* Update bun lock

* Update bun

* Downgrade to CS3D 4.17.2 to try to release

---------

Co-authored-by: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2026-02-23 17:24:33 -05:00
ohif-bot
279ae0dfe0 chore(version): Update package versions to 3.13.0-beta.22 [skip ci] 2026-02-23 21:42:30 +00:00
Joe Boccanfuso
928d592333
chore(security): Updates for running bun audit during CI and dependabot PR version update settings (#5835)
* chore(security): Update circleci config to only run bun audit for lockfile changes.

* Switched to eslint 9.39.3 for compatibility with .eslintrc.json.

* Disabled all dependabot pull requests for bun and npm version updates.
2026-02-23 16:37:56 -05:00
ohif-bot
3330d2b52b chore(version): Update package versions to 3.13.0-beta.21 [skip ci] 2026-02-23 14:19:07 +00:00
arul-trenser
b5573caaa6
fix(RTStruct): RTSTRUCT contours rendered on first slice for multi-frame images without IPP (#5811)
Fix RTSTRUCT contours rendered on first slice for multi-frame images without IPP
2026-02-23 09:14:34 -05:00
ohif-bot
cb4397fe31 chore(version): Update package versions to 3.13.0-beta.20 [skip ci] 2026-02-21 23:19:22 +00:00
Bill Wallace
d359a3b784
fix: Published version should match (#5813)
* fix: Published version should match

* Move version number update to package.json

* fix: Netlify version number update

* Try updating platform app vesion too

* PR comments

---------

Co-authored-by: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com>
2026-02-21 18:15:10 -05:00
ohif-bot
ce9f159c21 chore(version): Update package versions to 3.13.0-beta.19 [skip ci] 2026-02-20 22:29:35 +00:00
Joe Boccanfuso
27229609cd
fix(security): CVE-2026-27212 patched. Various dependency updates as a result of CVE-2026-26996. (#5830)
fix(security):  CVE-2026-27212 patched.
Various dependency updates as a result of CVE-2026-26996.
Ultimately CVE-2026-26996 was ignored because it is only exposed in itk-wasm via CLI and OHIF's other use of minimatch is limited to build/dev environments.
2026-02-20 17:25:06 -05:00
ohif-bot
83e687fb02 chore(version): Update package versions to 3.13.0-beta.18 [skip ci] 2026-02-19 01:36:02 +00:00
dxlin
b35354120a
fix(segmentation overlay): update viewport ds list upon seg delete - OHIF-2425 (#5729)
- add segmentationExists check to getSopClassHandlerModule
- now firing SEGMENTATION_REMOVED and SEGMENTATION_REPRESENTATION_REMOVED events
- centralized segmentation removal in a listener
- when a segmentation is deleted (completely), remove it from all viewports it overlays
- when a segmentation is removed from a viewport, remove it as overlay from the viewport

---------

Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2026-02-18 20:31:43 -05:00
ohif-bot
c75cbc2a89 chore(version): Update package versions to 3.13.0-beta.17 [skip ci] 2026-02-19 00:08:20 +00:00
Bill Wallace
53c67f3612
fix: Add copy to clipboard option for capture (#5720)
* Add copy to clipboard option for capture

* PR comments

* Added toast feedback and updated labels

---------

Co-authored-by: Dan Rukas <dan.rukas@gmail.com>
2026-02-18 19:03:17 -05:00
ohif-bot
c85ca0e177 chore(version): Update package versions to 3.13.0-beta.16 [skip ci] 2026-02-18 21:51:03 +00:00
Joe Boccanfuso
3d59c0d9d3
fix(security): Bump tar to 7.5.9 and lerna to 9.0.4 to fix CVE-2026-26960. (#5824)
* fix(security): Bump tar to 7.5.9 and lerna to 9.0.4 to fix CVE-2026-26960.
Bump sharp to 0.34.5 to fix tar-fs vulnerabilities.

* Update node version to 20.19.0 in circleci config. Needed for lerna and cypress tests.

* Now installing bun for cypress tests in circleci config.

* Use node version 20.19.0 in netlify config.
2026-02-18 16:46:02 -05:00
ohif-bot
8b9cb06115 chore(version): Update package versions to 3.13.0-beta.15 [skip ci] 2026-02-17 22:00:07 +00:00
Ghadeer Albattarni
cca1a8683b
fix(dicom-tag-browser): Prevent long series names from overlapping - OHIF-2406 (#5809) 2026-02-17 16:56:00 -05:00
ohif-bot
f668848230 chore(version): Update package versions to 3.13.0-beta.14 [skip ci] 2026-02-13 12:07:46 +00:00
dependabot[bot]
f590fc05a8
chore(deps): bump webpack from 5.95.0 to 5.105.0 (#5795)
---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2026-02-13 07:03:10 -05:00
ohif-bot
c6e670e575 chore(version): Update package versions to 3.13.0-beta.13 [skip ci] 2026-02-12 18:17:07 +00:00
Dan Rukas
dbc31a5d4e
fix(colors): Replace hardcoded black with background color token (#5815)
* Update all black to background

* remove --canvas token, keep intentional bg-black

* Move bg-black from grid container to individual viewport panes

---------

Co-authored-by: Alireza <ar.sedghi@gmail.com>
2026-02-12 13:12:36 -05:00
ohif-bot
cfe7efd3ef chore(version): Update package versions to 3.13.0-beta.12 [skip ci] 2026-02-12 14:00:31 +00:00
Dan Rukas
739e3239cf
fix(usAnnotation): Prevent error after JSON download (#5814)
removed dead code
2026-02-12 08:54:13 -05:00
ohif-bot
f81a7543fc chore(version): Update package versions to 3.13.0-beta.11 [skip ci] 2026-02-12 13:52:29 +00:00
Dan Rukas
9a2691a71f
fix(colors): Replaces legacy colors with ui-next colors (#5351)
* Update playwright screenshots and fix broken tests.

---------

Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2026-02-12 08:48:05 -05:00
ohif-bot
4dfd80f1fd chore(version): Update package versions to 3.13.0-beta.10 [skip ci] 2026-02-11 15:04:41 +00:00
Ghadeer Albattarni
baef707e46
fix(microscopy): Prevent measurement clearing on viewport resize (#5796)
Wrap DicomMicroscopyViewport with React.memo and custom areEqual
to prevent unnecessary re-renders that trigger clearAnnotations().

---------

Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2026-02-11 10:00:26 -05:00
ohif-bot
7cdc54c86d chore(version): Update package versions to 3.13.0-beta.9 [skip ci] 2026-02-11 14:24:16 +00:00
Bill Wallace
c92bdd5b48
fix: Missing tag (#5808) 2026-02-11 09:20:14 -05:00
ohif-bot
10b0560170 chore(version): Update package versions to 3.13.0-beta.8 [skip ci] 2026-02-11 13:29:58 +00:00
dependabot[bot]
4e9b5c2e22
chore(deps): bump diff from 4.0.2 to 4.0.4 - OHIF-2449 (#5731)
* fix(security): Use resolution for diff package to patch CVE-2026-24001.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2026-02-11 08:24:34 -05:00
ohif-bot
17b12dc932 chore(version): Update package versions to 3.13.0-beta.7 [skip ci] 2026-02-10 17:01:51 +00:00
Bill Wallace
fb7329f3fe
fix: Add a single version number with commit process (#5746)
* Add a single version number with commit process

* PR review comments
2026-02-10 11:56:52 -05:00
ohif-bot
912715407c chore(version): Update package versions [skip ci] 2026-02-10 16:19:44 +00:00
ohif-bot
99ff2453db chore(version): version.json [skip ci] 2026-02-10 16:19:36 +00:00
dependabot[bot]
b8adfdfc84
chore(deps): bump lodash-es from 4.17.21 to 4.17.23 - OHIF-2441 (#5736)
* fix(security): Moved react-color dependency to default extension because it is only used there.
Addressed CVE-2025-13465 by adding lodash-es as a resolution.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2026-02-10 11:15:21 -05:00
ohif-bot
eb5065ca6c chore(version): Update package versions [skip ci] 2026-02-10 15:08:00 +00:00
ohif-bot
0a751461b3 chore(version): version.json [skip ci] 2026-02-10 15:07:55 +00:00
dependabot[bot]
02f99d5638
chore(deps): bump lodash from 4.17.21 to 4.17.23 - OHIF-2438 (#5744)
* fix(security): Update lodash to 4.17.23 using a resolution.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2026-02-10 10:04:20 -05:00
ohif-bot
05d979f88d chore(version): Update package versions [skip ci] 2026-02-10 12:55:03 +00:00
ohif-bot
fdeb59d635 chore(version): version.json [skip ci] 2026-02-10 12:54:55 +00:00
Igor Octaviano
037402f7f6
fix: Better handle octet stream case (#5789)
* Better handle octet stream case

* Use data source config stack options

* Use immutability helper

* Use immutability helper (update)

---------

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2026-02-10 07:50:41 -05:00
ohif-bot
5837e6507e chore(version): Update package versions [skip ci] 2026-02-10 02:57:18 +00:00
ohif-bot
42634da189 chore(version): version.json [skip ci] 2026-02-10 02:57:09 +00:00
Ghadeer Albattarni
7f9e59ee30
fix(app): display study not found message for all modes (#5752)
* fix(app): move study validation to ModeRoute component

- Moved validation from defaultRouteInit.ts to Mode.tsx
- Added dedicated useEffect hook for study validation

* test: add Playwright test for study not found error page across multiple modes
2026-02-09 21:51:44 -05:00
ohif-bot
3c0dd39054 chore(version): Update package versions [skip ci] 2026-02-10 02:24:12 +00:00
ohif-bot
009e0e875d chore(version): version.json [skip ci] 2026-02-10 02:24:05 +00:00
Ghadeer Albattarni
f70c9b932d
fix(cine): prevent crash on second view/hydration of SR series (#5724)
* test: add Playwright test for SR series reload after hydration

* docs: remove Playwright VSCode extension video
2026-02-09 21:20:11 -05:00
ohif-bot
7bcb6b8a94 chore(version): Update package versions [skip ci] 2026-02-09 21:47:54 +00:00
ohif-bot
7c8ca269d3 chore(version): version.json [skip ci] 2026-02-09 21:47:48 +00:00
Joe Boccanfuso
94c9e162f3
fix(security): Use a resolution for axios to address CVE-2026-25639. (#5793) 2026-02-09 16:43:50 -05:00
ohif-bot
c10f0592f6 chore(version): Update package versions [skip ci] 2026-02-07 16:24:34 +00:00
ohif-bot
cbd0181523 chore(version): version.json [skip ci] 2026-02-07 16:24:27 +00:00
Joe Boccanfuso
47092fe1ac
chore(ci): move to next version [BUMP BETA] (#5790) 2026-02-07 11:20:05 -05:00
ohif-bot
891d6570c1 chore(version): Update package versions [skip ci] 2026-02-05 22:02:12 +00:00
ohif-bot
48f8e806c3 chore(version): version.json [skip ci] 2026-02-05 22:02:05 +00:00
Joe Boccanfuso
45739b31a2
fix(jump-to-contour-segment): For contours like those from RSTRUCTs, use generic jumpToSegmentCenter if a segment center is available. (#5785) 2026-02-05 16:57:15 -05:00
ohif-bot
54ff608605 chore(version): Update package versions [skip ci] 2026-02-05 16:55:14 +00:00
ohif-bot
710fefe3e8 chore(version): version.json [skip ci] 2026-02-05 16:55:06 +00:00
Bill Wallace
48f2f6fb13
fix(HistoryMemo): Segmentation delete wasn't remembered (#5775)
Will address a few more comments in a separate PR released after this one into 3.13

* fix(HistoryMemo): Segmentation delete wasn't remembered

* Temporary add of package.json linking

* fix: Use newer dcmjs version and delete segmentation with history cs3d
2026-02-05 11:49:49 -05:00
ohif-bot
3b9d3babf9 chore(version): Update package versions [skip ci] 2026-02-04 21:17:59 +00:00
ohif-bot
e71a20334a chore(version): version.json [skip ci] 2026-02-04 21:17:50 +00:00
Joe Boccanfuso
512aa3b07f
fix(jump-to-label-map): Use undefined for viewportId for arrow navigation. (#5774)
* Update to CS3D 4.15.28.
2026-02-04 16:12:41 -05:00
ohif-bot
c40ebd2124 chore(version): Update package versions [skip ci] 2026-01-30 18:57:26 +00:00
ohif-bot
ceb61fce15 chore(version): version.json [skip ci] 2026-01-30 18:57:20 +00:00
Joe Boccanfuso
9a97095d5c
chore(deps): Update cornerstonejs dependencies to 4.15.24. (#5764) 2026-01-30 13:53:28 -05:00
ohif-bot
a448bafbc5 chore(version): Update package versions [skip ci] 2026-01-30 16:22:51 +00:00
ohif-bot
2da384ccbc chore(version): version.json [skip ci] 2026-01-30 16:22:44 +00:00
Joe Boccanfuso
02423c5bf3
fix(segmentation): Use jumpToSegmentNext instead of jumpToSegmentCenter for arrow navigation. (#5759)
* fix(segmentation): Use jumpToSegmentNext instead of jumpToSegmentCenter for arrow navigation.

* Fixed unit tests.
2026-01-30 11:18:01 -05:00
Bill Wallace
5807889f79
Fix/duplicate redundant log measurement mapping (#5760)
* Remove all but one log message for mappings.

* fix: NPE when no segmentations list returned.
2026-01-30 11:16:37 -05:00
ohif-bot
a4c99e6926 chore(version): Update package versions [skip ci] 2026-01-28 19:06:09 +00:00
ohif-bot
f4ac95f96f chore(version): version.json [skip ci] 2026-01-28 19:06:03 +00:00
Joe Boccanfuso
76199884de
chore(security): Ignore node-tar vulnerability. (#5753) 2026-01-28 14:02:08 -05:00
ohif-bot
64cd189cce chore(version): Update package versions [skip ci] 2026-01-27 15:18:13 +00:00
ohif-bot
8f13d92fa8 chore(version): version.json [skip ci] 2026-01-27 15:18:06 +00:00
Devu-trenser
6dedf5573e
fix: Handle optional ContentSequence for NUM content items (#5703)
* fix: SR validation

* Adding links to cs3d

* Update to dcmjs 0.48.0

* Update package files to include updated adapter

* Update package files

---------

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
Co-authored-by: arul-trenser <arul.mozhi@trenser.com>
2026-01-27 10:13:55 -05:00
ohif-bot
b69abf25ee chore(version): Update package versions [skip ci] 2026-01-27 13:51:49 +00:00
ohif-bot
891012397b chore(version): version.json [skip ci] 2026-01-27 13:51:42 +00:00
Joe Boccanfuso
06612fe177
fix(TMTV): Consider blend mode when adding segmentation representations. OHIF-2416, OHIF-2369 (#5735)
* Updated screenshots for failing tests due to FOV improvements.

---------

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2026-01-27 08:47:29 -05:00
ohif-bot
0321361e2c chore(version): Update package versions [skip ci] 2026-01-22 19:16:07 +00:00
ohif-bot
1bc0dece64 chore(version): version.json [skip ci] 2026-01-22 19:15:58 +00:00
Bill Wallace
0fd517d6ab
fix: Navigate to contour should work (#5718)
* fix: Navigate to contour should work

* Switched back to jump to segment center for hte unit tests
2026-01-22 14:10:40 -05:00
ohif-bot
b2f6e1f237 chore(version): Update package versions [skip ci] 2026-01-22 03:03:33 +00:00
ohif-bot
dbb7873238 chore(version): version.json [skip ci] 2026-01-22 03:03:26 +00:00
zhenggu_rkie
afe184ec78
fix: the null value check issue in image spacing calculation (#5726)
Co-authored-by: 顾争 <zheng.gu-rd@djhealthunion.com.cn>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2026-01-21 21:59:20 -05:00
ohif-bot
3cfddc1f64 chore(version): Update package versions [skip ci] 2026-01-21 18:07:03 +00:00
ohif-bot
1142cdbb46 chore(version): version.json [skip ci] 2026-01-21 18:06:56 +00:00
Joe Boccanfuso
320f0a7463
fix(security): Ignore CVE-2026-23745, CVE-2026-23950 and CVE-2024-28863 because they are limited to build/dev environments. (#5733)
The tar vulnerabilities affect build-time tools (lerna) and transitive dependencies, but not runtime data flow from Cornerstone3D to its dependencies.
2026-01-21 13:02:40 -05:00
ohif-bot
16267d9ddd chore(version): Update package versions [skip ci] 2026-01-16 02:28:46 +00:00
ohif-bot
88e4a9fb7b chore(version): version.json [skip ci] 2026-01-16 02:28:40 +00:00
Joe Boccanfuso
4a1f509865
fix(microscopy): Update microscope to 0.48.17 to fix a measurement exception. (#5710)
* Added documentation for locally linking dicom-microscopy-viewer.
2026-01-15 21:24:31 -05:00
ohif-bot
c2efa5701e chore(version): Update package versions [skip ci] 2026-01-14 21:55:47 +00:00
ohif-bot
7f1c2910eb chore(version): version.json [skip ci] 2026-01-14 21:55:38 +00:00
Joe Boccanfuso
eb6b814fc9
fix(window-level-action-menu): Window level menu no longer needs two clicks to open after it is used (#5711)
The window level menu's logic for when it is opened and closed now also runs when the AllInOneMenu triggers the open or close.
Using refs to store the latest function references in the AllInOneMenu component to avoid triggering a useEffect when the functions change.
Removed an unused element prop from the WindowLevelActionMenu component.
2026-01-14 16:50:24 -05:00
Joe Boccanfuso
612ced0ea1
chore(deps): update CS3D to 4.15.9 to fix OHIF issues 5656 and 5639. (#5714) 2026-01-14 16:48:55 -05:00
ohif-bot
0995616567 chore(version): Update package versions [skip ci] 2026-01-13 21:02:21 +00:00
ohif-bot
210ebf26f6 chore(version): version.json [skip ci] 2026-01-13 21:02:14 +00:00
Joe Boccanfuso
82e6a18735
fix(segmentation): List surface representations in the segmentation table for 3D views. (#5700)
This was done by using an array of representation types instead of a single type for a panel.
The first element of the array is the primary type of the panel, and the rest are secondary types
that can also be displayed in the panel.

PR feedback:
- added test to check number of segments in side panel for 3D only view
- fixed jumping to segment in 3D only view
- fixed exception when adding contour segment in 3D only view
2026-01-13 15:57:44 -05:00
ohif-bot
83c9ce0f5f chore(version): Update package versions [skip ci] 2026-01-12 12:33:06 +00:00
ohif-bot
e06b1786e0 chore(version): version.json [skip ci] 2026-01-12 12:32:59 +00:00
Joe Boccanfuso
aba4855276
fix(segmentation): Update cornerstone dependencies to fix a segmentation exception after capture. (#5701) 2026-01-12 07:29:04 -05:00
ohif-bot
6f847cb053 chore(version): Update package versions [skip ci] 2026-01-09 19:57:27 +00:00
ohif-bot
b55f4985e0 chore(version): version.json [skip ci] 2026-01-09 19:57:20 +00:00
dependabot[bot]
00d04162b2
chore(deps): bump react-router from 6.30.1 to 6.30.3 (#5704) 2026-01-09 14:53:01 -05:00
ohif-bot
33575b769e chore(version): Update package versions [skip ci] 2026-01-08 19:40:28 +00:00
ohif-bot
36581696c9 chore(version): version.json [skip ci] 2026-01-08 19:40:21 +00:00
Joe Boccanfuso
6429a5518a
fix(DicomTagBrowser): Check for null metadata. (#5696) 2026-01-08 14:35:45 -05:00
ohif-bot
c34ede8570 chore(version): Update package versions [skip ci] 2026-01-07 21:18:36 +00:00
ohif-bot
0474168b44 chore(version): version.json [skip ci] 2026-01-07 21:18:29 +00:00
Joe Boccanfuso
ecc74a53e0
fix(segmentation): Use active segmentation for navigation. (#5692) 2026-01-07 16:14:20 -05:00
ohif-bot
18636734ec chore(version): Update package versions [skip ci] 2026-01-06 20:32:12 +00:00
ohif-bot
0cf3b0b335 chore(version): version.json [skip ci] 2026-01-06 20:32:05 +00:00
Joe Boccanfuso
38a8406a66
fix(capture): Ensure download filename has the correct extension. (#5691) 2026-01-06 15:27:44 -05:00
ohif-bot
a51552a2e7 chore(version): Update package versions [skip ci] 2026-01-06 13:14:33 +00:00
ohif-bot
7386d1fc01 chore(version): version.json [skip ci] 2026-01-06 13:14:27 +00:00
Alireza
a74648f8ec
fix: NM multiframe with TimeSlotVector (#5666)
* fix(ViewportWindowLevel): add null checks for volumeActor in opacity functions

* refactor(ViewportWindowLevel): register histogram worker at module load and optimize scalar data retrieval

* fix(Preclinical4D): add null check for viewportId and set frame rate for cine playback

* fix(getSopClassHandlerModule): handle multiframe dynamic volumes by utilizing metaData for instance retrieval

---------

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2026-01-06 08:10:01 -05:00
ohif-bot
fec661318c chore(version): Update package versions [skip ci] 2026-01-05 18:56:32 +00:00
ohif-bot
09c8af50b7 chore(version): version.json [skip ci] 2026-01-05 18:56:24 +00:00
Joe Boccanfuso
6931c6b7fa
chore(deps): update cs3d dependencies (#5688) 2026-01-05 13:51:23 -05:00
ohif-bot
233f73b7eb chore(version): Update package versions [skip ci] 2026-01-05 17:28:26 +00:00
ohif-bot
017c7dff27 chore(version): version.json [skip ci] 2026-01-05 17:28:19 +00:00
Joe Boccanfuso
ca364a3af7
fix(security): update qs package to fix vulnerability CVE-2025-15284 (#5686)
fixes: qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion
2026-01-05 12:23:34 -05:00
ohif-bot
50f6b52bbd chore(version): Update package versions [skip ci] 2025-12-19 19:50:23 +00:00
ohif-bot
3b34296d2b chore(version): version.json [skip ci] 2025-12-19 19:50:16 +00:00
Bill Wallace
635de2bfcf
Allow doc launch (#5670) 2025-12-19 14:46:08 -05:00
ohif-bot
8626906b0e chore(version): Update package versions [skip ci] 2025-12-19 18:02:00 +00:00
ohif-bot
6a185bfb6e chore(version): version.json [skip ci] 2025-12-19 18:01:52 +00:00
Belbin-GK
cd253f20bd
fix: pass metadata to viewport orientation matching (#5667)
Co-authored-by: Belbin GK <belbin.kunjumon@prenuvo.com>
2025-12-19 12:56:59 -05:00
ohif-bot
e7bc688290 chore(version): Update package versions [skip ci] 2025-12-18 18:39:51 +00:00
ohif-bot
21ab058fdb chore(version): version.json [skip ci] 2025-12-18 18:39:44 +00:00
Joe Boccanfuso
3440f66ebd
fix(segmentation): Update cornerstone dependencies to fix segment visibility issue. (#5664) 2025-12-18 13:35:29 -05:00
ohif-bot
f8f09c2c68 chore(version): Update package versions [skip ci] 2025-12-18 17:06:35 +00:00
ohif-bot
68cf1bb81e chore(version): version.json [skip ci] 2025-12-18 17:06:30 +00:00
Belbin-GK
658994c854
fix: prevent annotation from appearing in active viewport when switching series with different Frame of Reference UID (#5630)
* fix: prevent annotation from appearing in active viewport when switching series with different Frame of Reference UID

* refactor: extract viewport update strategies

* Update version and use nearest orientation viewport

---------

Co-authored-by: trenser-belbin <belbin.kunjumon@prenuvo.com>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2025-12-18 12:02:52 -05:00
ohif-bot
0af4c2ae47 chore(version): Update package versions [skip ci] 2025-12-18 14:38:06 +00:00
ohif-bot
fad77aa188 chore(version): version.json [skip ci] 2025-12-18 14:37:59 +00:00
Joe Boccanfuso
f3beb8e711
fix(segmentation): When setting the segmentation style and the representation type is not provided, apply the style to all representation types. (#5662) 2025-12-18 09:33:54 -05:00
ohif-bot
fcfc2b4eb8 chore(version): Update package versions [skip ci] 2025-12-17 21:57:16 +00:00
ohif-bot
f296247cc1 chore(version): version.json [skip ci] 2025-12-17 21:57:09 +00:00
nithin-trenser
ef98516b4f
fix: Jump to measurement from measurement panel after rotating viewport (#5090)
Requested issues were resolved.  Approved this and am merging.

* sort the viewports based on the closest orientation as that of measurement

* fix: Separate out function for finding viewport alignment

---------

Co-authored-by: Arul Mozhi J <arul.mozhi@trenser.com>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2025-12-17 16:52:45 -05:00
ohif-bot
df40ffbf12 chore(version): Update package versions [skip ci] 2025-12-16 19:05:52 +00:00
ohif-bot
5fc1c44b1e chore(version): version.json [skip ci] 2025-12-16 19:05:45 +00:00
dxlin
b2c469d087
fix/RTStructInlineBinaryContourData (#5611)
* -check for ContourData still in InlineBinary format and perform conversion
2025-12-16 14:01:15 -05:00
ohif-bot
42168442b9 chore(version): Update package versions [skip ci] 2025-12-16 02:19:36 +00:00
ohif-bot
f01be6aedc chore(version): version.json [skip ci] 2025-12-16 02:19:29 +00:00
Alireza
2de81efa7e
fix: preclinical mode not working (#5631)
* fix(ViewportWindowLevel): add null checks for volumeActor in opacity functions

* refactor(ViewportWindowLevel): register histogram worker at module load and optimize scalar data retrieval

* fix(Preclinical4D): add null check for viewportId and set frame rate for cine playback
2025-12-15 21:15:11 -05:00
ohif-bot
84d0d8866b chore(version): Update package versions [skip ci] 2025-12-15 13:54:44 +00:00
ohif-bot
7056148ada chore(version): version.json [skip ci] 2025-12-15 13:54:36 +00:00
Devu-trenser
6c628e0937
fix: seg sync for data without FOR (#5565)
* fix: seg sync for data without FOR

* test commit to trigger deploy re-run

* test commit to trigger deploy re-run

* Revert "test commit to trigger deploy re-run"

This reverts commit 42c532c6f404798e39e3d137fff7c1e7569956ad.

* chore: comments updated

* review commnets

---------

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2025-12-15 08:49:43 -05:00
ohif-bot
31ac27d5a0 chore(version): Update package versions [skip ci] 2025-12-12 16:51:13 +00:00
ohif-bot
46d5bc6cf6 chore(version): version.json [skip ci] 2025-12-12 16:51:06 +00:00
Vinícius Alves de Faria Resende
d917e74e68
tests(Playwright): Full implementation of Page Object Models (POMs) to Playwright tests (#5608) 2025-12-12 11:46:45 -05:00
ohif-bot
7b12dcf048 chore(version): Update package versions [skip ci] 2025-12-12 15:51:24 +00:00
ohif-bot
062d18c950 chore(version): version.json [skip ci] 2025-12-12 15:51:16 +00:00
Martin Bellehumeur, M. Eng.
181c0f32c5
chore: update French i18n (#5561) 2025-12-12 10:46:56 -05:00
nithin-trenser
ba140a05f7
fix: Console error on loading SR report (#5600)
* fixed console error

* Added check for SCOORD3D
2025-12-11 09:36:39 -05:00
ohif-bot
88188ad0c4 chore(version): Update package versions [skip ci] 2025-12-10 21:43:24 +00:00
ohif-bot
3609b162be chore(version): version.json [skip ci] 2025-12-10 21:43:17 +00:00
Dan Rukas
eef755ef05
fix(routes): display 404 feedback page for unmatched URLs (#5627)
* Added 404 feedback and design

* restore message and showGoBackButton props
2025-12-10 16:39:17 -05:00
Dan Rukas
c0f39aeb51
fix(DataSource): migrate configuration dialog to ui-next components (#5626)
* Fix to show data source on study list

* Update Button in Dialog select rows

* Updated legacy colors, small design updates

* Update dialog sizing
2025-12-10 16:38:25 -05:00
ohif-bot
3a5def6eb7 chore(version): Update package versions [skip ci] 2025-12-09 22:24:37 +00:00
ohif-bot
7e148ef197 chore(version): version.json [skip ci] 2025-12-09 22:24:30 +00:00
Ghadeer Albattarni
8dde2237a2
fix(seg-viewport): add guard for missing reference display set handler to prevent viewport crash (#5618) 2025-12-09 17:20:11 -05:00
ohif-bot
442ee68599 chore(version): Update package versions [skip ci] 2025-12-05 13:11:03 +00:00
ohif-bot
dc91c07fd5 chore(version): version.json [skip ci] 2025-12-05 13:10:56 +00:00
Belbin-GK
c4e5a4616d
feat(notification): add custom notification component support (#5605)
* feat: add custom notification component support

* update the documentation of UINotificationService to support custom component integration

---------

Co-authored-by: trenser-belbin <belbin.kunjumon@prenuvo.com>
2025-12-05 08:06:32 -05:00
ohif-bot
fd86a9e3e8 chore(version): Update package versions [skip ci] 2025-12-04 17:30:48 +00:00
ohif-bot
b85141ed2f chore(version): version.json [skip ci] 2025-12-04 17:30:39 +00:00
Bill Wallace
77f9f8e1c4
fix: Initial sort not consistent (#5224)
* fix: Initial sort not consistent

* Add better sort criteria

* Remove sorting changes

* Start replacing screen shots

* Update bun lock for version

* Leave default sort for test mode

* fix: Add consistent sorting for same series splits

* PR comments

* docs: add notes for series/display set sort

* Updated example docs

* Update sortVector to be compareSameStudy

* Add unit test

* PR comments
2025-12-04 12:26:21 -05:00
ohif-bot
14bc99124d chore(version): Update package versions [skip ci] 2025-12-03 22:37:56 +00:00
ohif-bot
d1388ac9c8 chore(version): version.json [skip ci] 2025-12-03 22:37:49 +00:00
Dan Rukas
6566354986
fix(clipboard): Adds tooltip clipboard icon feedback when copy fails (#5609)
* Added missing icon feedback

* fixed colors
2025-12-03 17:33:37 -05:00
ohif-bot
ff5ead6284 chore(version): Update package versions [skip ci] 2025-12-03 20:40:56 +00:00
ohif-bot
58c2cc70cf chore(version): version.json [skip ci] 2025-12-03 20:40:48 +00:00
Belbin-GK
1aa4431121
fix: skip VOI sync for empty viewports (#5599)
Co-authored-by: trenser-belbin <belbin.kunjumon@prenuvo.com>
2025-12-03 15:36:30 -05:00
ohif-bot
4e5d5a7701 chore(version): Update package versions [skip ci] 2025-12-02 18:05:56 +00:00
ohif-bot
6b18aa085d chore(version): version.json [skip ci] 2025-12-02 18:05:49 +00:00
dependabot[bot]
740dd7fe5f
chore(deps): bump node-forge from 1.3.1 to 1.3.2 in /platform/docs (#5592)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2025-12-02 13:00:17 -05:00
ohif-bot
5b75a6a56a chore(version): Update package versions [skip ci] 2025-12-02 14:53:29 +00:00
ohif-bot
3dba8dbc9f chore(version): version.json [skip ci] 2025-12-02 14:53:23 +00:00
Bill Wallace
4471416c30
fix: sculptor tool fixes (#5595)
Note: FOSSA check is invalid, but we don't have the ignore FOSSA version included.

* fix: sculptor tool fixes

* Add yarn

* update vtk.js version as well to match
2025-12-02 09:49:09 -05:00
ohif-bot
a7229bb022 chore(version): Update package versions [skip ci] 2025-12-02 14:13:17 +00:00
ohif-bot
55ea706768 chore(version): version.json [skip ci] 2025-12-02 14:13:09 +00:00
dependabot[bot]
6d6ce0ddae
chore(deps): bump mdast-util-to-hast from 13.2.0 to 13.2.1 in /platform/docs (#5602)
* Fix node-forge security alerts as well.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2025-12-02 09:08:43 -05:00
ohif-bot
0f26588c4b chore(version): Update package versions [skip ci] 2025-11-25 14:17:18 +00:00
ohif-bot
446f58eb76 chore(version): version.json [skip ci] 2025-11-25 14:17:11 +00:00
Pedro Köhler
411553ee91
feat: tooltips for tool settings (#5586) 2025-11-25 09:13:01 -05:00
ohif-bot
e0d74a6674 chore(version): Update package versions [skip ci] 2025-11-24 18:14:22 +00:00
ohif-bot
7d0a3e6ce7 chore(version): version.json [skip ci] 2025-11-24 18:14:14 +00:00
Alireza
29cfb2c299
docs(docs): Correct grammar in README.md for clarity (#5584) 2025-11-24 13:09:50 -05:00
Joe Boccanfuso
94b0358f18
fix(docs): Empty commit as an attempt to fix the docs build. (#5582) 2025-11-24 09:46:21 -05:00
ohif-bot
173f42010b chore(version): Update package versions [skip ci] 2025-11-21 18:11:46 +00:00
ohif-bot
c5a51607c9 chore(version): version.json [skip ci] 2025-11-21 18:11:39 +00:00
Bill Wallace
57205703bb
Fix contour annotations RTSS saving (#5545)
* [WIP] Fix contour annotations RTSS saving

* fix: Export image sop image reference provider

* Fixes for download with filename

* Updates to fix metadata issues with CS3D

* Updates to save menu

* Fixing some additional re-save metadata

* Add support for saving with predecessor image sequence

* PR comment fixes

* fix: Load RTSS after save

* fix segmentation save

* fix load of mixed seg/rt studies

* Use frame module to get information on the frame shown

* Fix study browser to use instances.length when numImageFrames not present

* fix: Load of display set split from multiple non-FOR referenes

* Fix RT and SEG applying to wrong series because of using
referenced series sequence without checkout sop instances

* Fix save seg

* Update to released CS3D versions

* test: Add revokeObjectURL to test download blob

* Add hard dependency on mode-basic to fix build order issues

* fix: build

* Try to fix build segmentation

* PR comments

* PR comment update
2025-11-21 13:07:26 -05:00
ohif-bot
9c5043ca2c chore(version): Update package versions [skip ci] 2025-11-21 14:47:02 +00:00
ohif-bot
9899d3f623 chore(version): version.json [skip ci] 2025-11-21 14:46:55 +00:00
Dan Rukas
62d6bf437b
fix(DicomUpload): Switch to use ui-next components and colors (#5576)
* Replaced legacy Button

* Updated Dialog width

* Restore text and spacing fixes

* Updated drop zone styling

* Migrated to ui-next colors
2025-11-21 09:42:14 -05:00
ohif-bot
4dc8debb02 chore(version): Update package versions [skip ci] 2025-11-20 14:33:45 +00:00
ohif-bot
f72c47568b chore(version): version.json [skip ci] 2025-11-20 14:33:38 +00:00
Vinícius Alves de Faria Resende
bdad2264ed
tests(Playwright): Introduction of Page Object Models (POMs) to Playwright tests (#5557) 2025-11-20 09:29:14 -05:00
ohif-bot
1c991037ee chore(version): Update package versions [skip ci] 2025-11-20 01:08:59 +00:00
ohif-bot
44eafe16c1 chore(version): version.json [skip ci] 2025-11-20 01:08:52 +00:00
Igor Octaviano
9ca02b4071
fix: Remove dead code and fix rectangle roi rehydration (#5490)
* Remove dead code and fix rectangle roi rehydration

* Revert bun.lock

* Remove hardcoded modality

* Add e2e tests

* Update screewnshots

* Adjustments to tests

* disabvle test for now

* Add test again

* Use ohif data soure

* Revert changes

* Test

* Update testdata to include point

* Improve tests

* Update screenshot

---------

Co-authored-by: Andrey Fedorov <andrey.fedorov@gmail.com>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2025-11-19 20:04:23 -05:00
ohif-bot
0be3b950b7 chore(version): Update package versions [skip ci] 2025-11-19 23:00:57 +00:00
ohif-bot
186e9caeaa chore(version): version.json [skip ci] 2025-11-19 23:00:48 +00:00
Joe Boccanfuso
5c17c262ea
fix(SegmentationStyle): Fix inactive contour visibility and styling. (#5563)
* Opacity, fill and outline properties for active and inactive contours
are now consistent with those for label map segmentations.
The properties for inactive segmentations are applied to BOTH
inactive contours and label maps.

* Activate the selected segmentation for a type when the alpha, outline width, or fill/outline visibility is changed.
2025-11-19 17:55:53 -05:00
dependabot[bot]
62797acd9a
chore(deps): bump glob from 10.4.5 to 10.5.0 (#5572)
Ignore CVE-2025-64756 (aka GHSA-5j98-mcp5-4vw2) in bun audit.

Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2025-11-19 08:43:58 -05:00
ohif-bot
b15c002f60 chore(version): Update package versions [skip ci] 2025-11-13 12:17:23 +00:00
ohif-bot
9b4e66c868 chore(version): version.json [skip ci] 2025-11-13 12:17:16 +00:00
Joe Boccanfuso
02f6744dab
fix(segmentation): Allow for manually added label map and contour segmentations to be used as viewport data overlays. (#5562) 2025-11-13 07:12:28 -05:00
ohif-bot
5c44fe06dc chore(version): Update package versions [skip ci] 2025-11-11 13:24:22 +00:00
ohif-bot
b71952ec86 chore(version): version.json [skip ci] 2025-11-11 13:24:16 +00:00
Joe Boccanfuso
834ae3c762
fix(interpolation): Auto accept interpolation when the interpolation process is completed. (#5555)
* Update Cornerstone3D packages to 4.9.1.
2025-11-11 08:19:45 -05:00
ohif-bot
79fab8d70d chore(version): Update package versions [skip ci] 2025-11-10 21:14:05 +00:00
ohif-bot
ace476649f chore(version): version.json [skip ci] 2025-11-10 21:13:57 +00:00
Nilesh Gautam
58aa0d1eaa
fix(dev): update webpack proxy config syntax for Orthanc dev mode (#5531)
* fix(dev): update webpack proxy config syntax for Orthanc dev mode

* Add datasources and rename dicomweb to orthancProxy datasource

---------

Co-authored-by: Nilesh Gautam <nilesh.gautam@radpretation.ai>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2025-11-10 16:08:50 -05:00
ohif-bot
bb45cb24b5 chore(version): Update package versions [skip ci] 2025-11-06 13:51:02 +00:00
ohif-bot
2a07964002 chore(version): version.json [skip ci] 2025-11-06 13:50:55 +00:00
Devu-trenser
16233d980f
feat(metadata): metadata access improvement (#5292)
* feat(metadata): metadata access improvement

* feat: Make a few fields commonly used at the instance level inherit multiframe
2025-11-06 08:46:01 -05:00
ohif-bot
9413219206 chore(version): Update package versions [skip ci] 2025-11-05 17:05:25 +00:00
ohif-bot
14d62ce180 chore(version): version.json [skip ci] 2025-11-05 17:05:18 +00:00
Joe Boccanfuso
a0556b08be
fix(segmentation): When synchronizing a segmentation representation, use the type of the source viewport segmentation to determine the type of the target viewport segmentation (#5546) 2025-11-05 12:00:41 -05:00
ohif-bot
bee60a5482 chore(version): Update package versions [skip ci] 2025-11-05 15:39:24 +00:00
ohif-bot
5c496c7f02 chore(version): version.json [skip ci] 2025-11-05 15:39:17 +00:00
Vinícius Alves de Faria Resende
29bd87c8c0
fix(SegmentationTools): [Bug] Changes of brush/eraser radius with hotkey do not reflect on segmentation tool (#5535) 2025-11-05 10:34:41 -05:00
ohif-bot
0c8ab01d34 chore(version): Update package versions [skip ci] 2025-11-05 15:16:28 +00:00
ohif-bot
f15887c9bf chore(version): version.json [skip ci] 2025-11-05 15:16:20 +00:00
Abhijith Sb
2481208f31
Fix : Problems related to measurement operation undo (#5541)
fixed the console error while undoing a removed annotation
2025-11-05 10:11:26 -05:00
ohif-bot
74c92fa601 chore(version): Update package versions [skip ci] 2025-10-30 20:09:19 +00:00
ohif-bot
beb6a73bc7 chore(version): version.json [skip ci] 2025-10-30 20:09:11 +00:00
Joe Boccanfuso
000e42e9a6
fix(security): Exact versioning and docs dependabot alerts (#5536) 2025-10-30 16:04:19 -04:00
ohif-bot
9ad7623a25 chore(version): Update package versions [skip ci] 2025-10-29 18:22:19 +00:00
ohif-bot
eb564aec5e chore(version): version.json [skip ci] 2025-10-29 18:22:11 +00:00
Joe Boccanfuso
35bfc9b0cc
feature(segmentation): Add contour tools and utilities in a side panel (#5517)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Dan Rukas <dan.rukas@gmail.com>
2025-10-29 14:15:52 -04:00
ohif-bot
ab440f086a chore(version): Update package versions [skip ci] 2025-10-28 12:57:15 +00:00
ohif-bot
1d33bcf229 chore(version): version.json [skip ci] 2025-10-28 12:57:08 +00:00
Vinícius Alves de Faria Resende
76f7d4e23a
fix(3DSegmentation): [Bug] The viewports become blank when loading the seg file in advanced layout after closing the seg file from any other advanced layout (#5505) 2025-10-28 08:52:12 -04:00
ohif-bot
afa9131da1 chore(version): Update package versions [skip ci] 2025-10-27 19:21:49 +00:00
ohif-bot
5b5bca5e91 chore(version): version.json [skip ci] 2025-10-27 19:21:42 +00:00
Joe Boccanfuso
1f11c83006
fix(security): Addressed dependabot alert CVE-2025-59288 concerning playwright (#5527) 2025-10-27 15:16:43 -04:00
ohif-bot
1dd4f60034 chore(version): Update package versions [skip ci] 2025-10-24 20:53:28 +00:00
ohif-bot
2013c87ddb chore(version): version.json [skip ci] 2025-10-24 20:53:21 +00:00
Joe Boccanfuso
1009c60911
fix(security): For bun, enforce frozen lockfile. For yarn, strongly suggest using frozen lockfile. (#5508)
* Updated docs for security information.
2025-10-24 16:48:35 -04:00
ohif-bot
b517944cb5 chore(version): Update package versions [skip ci] 2025-10-23 13:17:02 +00:00
ohif-bot
67d6622ae4 chore(version): version.json [skip ci] 2025-10-23 13:16:54 +00:00
Ibrahim
a1544432db
feat(jpeg2000): Add 16-bit RGB support to JPEG2000 decoder (#5519) 2025-10-23 09:11:54 -04:00
ohif-bot
e0e1763472 chore(version): Update package versions [skip ci] 2025-10-22 16:18:31 +00:00
ohif-bot
b844b56839 chore(version): version.json [skip ci] 2025-10-22 16:18:25 +00:00
k3mot
8b9445c442
fix: Fixed the tooltip text of the window button, it was mistakenly written in Chinese in the en-us json (#5513)
Fixed the tooltip text of the window button, it was mistakenly written in Chinese in the en-US json

Co-authored-by: Tom Avitan <tom.avitan@aidoc.com>
2025-10-22 12:14:00 -04:00
ohif-bot
8193311841 chore(version): Update package versions [skip ci] 2025-10-22 15:00:24 +00:00
ohif-bot
c83710fa78 chore(version): version.json [skip ci] 2025-10-22 15:00:18 +00:00
Joe Boccanfuso
e07a87dcae
chore(workflow): Run playwright tests for release branch PRs. (#5515) 2025-10-22 10:55:46 -04:00
ohif-bot
2bc0647861 chore(version): Update package versions [skip ci] 2025-10-21 16:03:13 +00:00
ohif-bot
2a01dcce29 chore(version): version.json [skip ci] 2025-10-21 16:03:06 +00:00
Joe Boccanfuso
1df4f843fe
fix(segmentation): Fixed the manual scrolling of the segments list and implemented automatic scrolling to the active segment. (#5510)
The height of the list container is now calculated based on a parent div instead of itself.
DataRow component now has a forward ref to allow for automatic scrolling.

Added better detection to the useDynamicMaxHeight hook for when to recalculate the max height using intersection observers.

The useEffect for scrolling a segment into view used to be excessively called to the point
where it was auto scrolling after the user manually scrolled. The auto scroll useEffect is
now dependent on the segment index changing which should only happen once per active segment change.
2025-10-21 11:58:23 -04:00
ohif-bot
cf0b561a49 chore(version): Update package versions [skip ci] 2025-10-20 17:12:13 +00:00
ohif-bot
f1675559ee chore(version): version.json [skip ci] 2025-10-20 17:12:07 +00:00
Ibrahim
ffd9ec3273
fix(rendering): Fix palette color LUT conversion causing black images (#5509)
The palette color LUT was incorrectly handling 16 bit entries, and didn't work for both array buffers and typed arrays.
2025-10-20 13:07:39 -04:00
ohif-bot
66e6d73ad6 chore(version): Update package versions [skip ci] 2025-10-20 15:28:17 +00:00
ohif-bot
07c45d0364 chore(version): version.json [skip ci] 2025-10-20 15:28:10 +00:00
Bill Wallace
503780247c
fix: Pass the correct sop uid + frame for rehydration to prevent associating rehydrated measurements with the wrong data (#5506)
* fix: [#2404] by passing the right sop uid map

* Update PR with requried CS3D fixes

* Update to released versions - had wrong release number
2025-10-20 11:23:26 -04:00
ohif-bot
82c4a0a8d0 chore(version): Update package versions [skip ci] 2025-10-18 02:18:57 +00:00
ohif-bot
6a523ff78d chore(version): version.json [skip ci] 2025-10-18 02:18:51 +00:00
Joe Boccanfuso
170e860aa1
fix(segmentation): Lock all rehydrated segmentation segments when panelSegmentation.disableEditing is true. (#5503)
* fix(segmentation): Lock all rehydrated segmentation segments when panelSegmentation.disableEditing is true.

* PR feedback.

* PR feedback.

* Added tests for disableEditing and utilities for simulating drag operations.

* Update bun.lock file after merging master.
2025-10-17 22:14:31 -04:00
ohif-bot
3e1d50c8d2 chore(version): Update package versions [skip ci] 2025-10-17 12:19:47 +00:00
ohif-bot
05b80305dc chore(version): version.json [skip ci] 2025-10-17 12:19:40 +00:00
Joe Boccanfuso
4620cc3acf
fix(ErrorBoundary): Allow for details to be shown in production. (#5504)
Added showErrorDetails to config to allow for details to be shown in various runtime environments.
2025-10-17 08:15:13 -04:00
ohif-bot
cf8f4aa120 chore(version): Update package versions [skip ci] 2025-10-17 01:59:53 +00:00
ohif-bot
f75273ece6 chore(version): version.json [skip ci] 2025-10-17 01:59:47 +00:00
Luis Miguel Santos
42aa2df626
fix 5323 unexpected series list filter change from all to recent (#5337)
* fix to unexpected change from All to recent browser study lists because of the search order for the presence of the study in the tab groups and subsequent reset of the active tab state.
Minor comment in the study browser header.

Signed-off-by: Luis M. Santos <luis.santos2@nih.gov>

* chore Added type annotations and cleaned up stylistically.

Signed-off-by: Luis M. Santos <luis.santos2@nih.gov>

* Tighten up a bit of the code to make it easier to follow

* Fix warnings

---------

Signed-off-by: Luis M. Santos <luis.santos2@nih.gov>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>

Confirm that Alireza's requested change was included.
2025-10-16 21:55:31 -04:00
ohif-bot
be6f3db1ce chore(version): Update package versions [skip ci] 2025-10-17 00:07:14 +00:00
ohif-bot
c41dbc8236 chore(version): version.json [skip ci] 2025-10-17 00:07:08 +00:00
Luis Miguel Santos
53694da216
[Ready] fix 5288 removal of accept header options in retrieve metadata (#5293)
* chore: Minor adjustment to generateAcceptHeader function signature to reflect expected return type.

Signed-off-by: Luis M. Santos <luis.santos2@nih.gov>

* fix: Added switch to skip the Accept header generation when requesting metadata. WADO metadata request is more likely to return JSON and some VNAs do not like the extra options in the Accept header. Also, passing an empty array is not sufficient because somewhere we still include a comma that breaks the Accept header. It's better to omit it for the metadata request only.

Signed-off-by: Luis M. Santos <luis.santos2@nih.gov>

* chore: Added new HeadersInterface interface type docstrings.

Signed-off-by: Luis M. Santos <luis.santos2@nih.gov>

* chore: Refactored getAuthorizationHeader() function signature so it is typed checked. Of course, I upgraded the module to a TypeScript module.
Moved the request header interfaces into its own TypeScript module (RequestHeaders.ts) in the core types.

Signed-off-by: Luis M. Santos <luis.santos2@nih.gov>

* chore: Refactored the user logic to include a TypeScript interface. As a result, upgraded the source file to TypeScript.
Removed the User interface from RequestHeaders module and moved them to the user module.

Signed-off-by: Luis M. Santos <luis.santos2@nih.gov>

* chore: Updated function signatures, user import, and confirmed unit tests are passing.

Signed-off-by: Luis M. Santos <luis.santos2@nih.gov>

* chore: Minor stylistic adjustment to getAuthorizationHeader.test.ts

Signed-off-by: Luis M. Santos <luis.santos2@nih.gov>

* chore: Added missing comments.

Signed-off-by: Luis M. Santos <luis.santos2@nih.gov>

* chore adjusted generateWadoHeader parameter's name and added comment about the expected default header.

Signed-off-by: Luis M. Santos <luis.santos2@nih.gov>

* Just tweaking the interface a bit to be more consistent.

* fix authorization header signature change

---------

Signed-off-by: Luis M. Santos <luis.santos2@nih.gov>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
Co-authored-by: Alireza <ar.sedghi@gmail.com>
2025-10-16 20:01:34 -04:00
ohif-bot
9d68b6ef31 chore(version): Update package versions [skip ci] 2025-10-15 14:51:20 +00:00
ohif-bot
2300c70314 chore(version): version.json [skip ci] 2025-10-15 14:51:13 +00:00
Joe Boccanfuso
86e924fb88
fix(docker): Use bun version 1.2.23 for docker build. (#5501) 2025-10-15 10:46:47 -04:00
ohif-bot
e988216b2b chore(version): Update package versions [skip ci] 2025-10-15 13:40:22 +00:00
ohif-bot
23c8fdca00 chore(version): version.json [skip ci] 2025-10-15 13:40:14 +00:00
Devu-trenser
faea09e7ef
fix: Segmentation not displayed and unable to draw segments in volume viewport after converting Labelmap to Surface (#5488)
* fix: unable to draw segment after 3d layout

* comment update

---------
2025-10-15 09:35:26 -04:00
ohif-bot
05ecdfe512 chore(version): Update package versions [skip ci] 2025-10-15 11:37:08 +00:00
ohif-bot
0b6c38e5e0 chore(version): version.json [skip ci] 2025-10-15 11:37:01 +00:00
Pedro Köhler
3137aed017
fix(segmentationService): prevent no representation crash (#5495) 2025-10-15 07:32:27 -04:00
ohif-bot
a1c6b5f3ec chore(version): Update package versions [skip ci] 2025-10-15 04:13:38 +00:00
ohif-bot
be13e7506a chore(version): version.json [skip ci] 2025-10-15 04:13:32 +00:00
Joe Boccanfuso
0d2f4e715a
fix(docs): Set exact version for glob. (#5497) 2025-10-15 00:08:57 -04:00
ohif-bot
37231a5ffe chore(version): Update package versions [skip ci] 2025-10-15 03:11:55 +00:00
ohif-bot
c53ee335ee chore(version): version.json [skip ci] 2025-10-15 03:11:48 +00:00
Joe Boccanfuso
fbd9371884
fix(security): Run bun audit before bun install. (#5496) 2025-10-14 23:07:00 -04:00
ohif-bot
5d57c05217 chore(version): Update package versions [skip ci] 2025-10-14 20:28:31 +00:00
ohif-bot
ec38af8c06 chore(version): version.json [skip ci] 2025-10-14 20:28:24 +00:00
Joe Boccanfuso
c7d2017f08
fix(security): Use exact versioning for dependencies in package.json files. (#5494)
Added bun audit security check in build process.
Removed bun caching.
2025-10-14 16:23:36 -04:00
ohif-bot
3d393df45d chore(version): Update package versions [skip ci] 2025-10-14 17:10:35 +00:00
ohif-bot
2f94e27d3b chore(version): version.json [skip ci] 2025-10-14 17:10:28 +00:00
Ujjwal Kumar Baranwal
e9b57d5731
Update Dockerfile (#5486) 2025-10-14 13:06:01 -04:00
ohif-bot
ff4ffbe975 chore(version): Update package versions [skip ci] 2025-10-14 17:00:02 +00:00
ohif-bot
458311252b chore(version): version.json [skip ci] 2025-10-14 16:59:55 +00:00
Joe Boccanfuso
3fe67d5c98
fix(bun): Use fixed bun version (#5493) 2025-10-14 12:55:32 -04:00
ohif-bot
87f78069e7 chore(version): Update package versions [skip ci] 2025-10-10 13:19:03 +00:00
ohif-bot
f8f7a175c4 chore(version): version.json [skip ci] 2025-10-10 13:18:56 +00:00
Ujjwal Kumar Baranwal
41c028781b
fix: Update Dockerfile (#5484)
* Update Dockerfile

* Update Dockerfile
2025-10-10 09:14:11 -04:00
ohif-bot
f6cf4d127d chore(version): Update package versions [skip ci] 2025-10-09 20:56:01 +00:00
ohif-bot
131fb57cc9 chore(version): version.json [skip ci] 2025-10-09 20:55:54 +00:00
Joe Boccanfuso
efe97cd01d
chore(deps): Update cornerstone3D dependencies. (#5479) 2025-10-09 16:51:34 -04:00
ohif-bot
17e1641226 chore(version): Update package versions [skip ci] 2025-10-08 14:37:01 +00:00
ohif-bot
be1b44a4ba chore(version): version.json [skip ci] 2025-10-08 14:36:52 +00:00
Joe Boccanfuso
84f27593a0
chore(deps): Update Cornerstone 3D to 4.5.3. (#5473) 2025-10-08 10:30:27 -04:00
ohif-bot
2af95988df chore(version): Update package versions [skip ci] 2025-10-07 23:24:02 +00:00
ohif-bot
e2901eb30f chore(version): version.json [skip ci] 2025-10-07 23:23:54 +00:00
Joe Boccanfuso
377d5e2fb6
chore(deps): Update cornerstone dependencies. (#5470) 2025-10-07 19:18:10 -04:00
ohif-bot
d3adeec109 chore(version): Update package versions [skip ci] 2025-10-07 21:45:41 +00:00
ohif-bot
fc3aec7a79 chore(version): version.json [skip ci] 2025-10-07 21:45:34 +00:00
Devu-trenser
78df8ff03a
fix(segmentation): Segmentation not displayed and unable to draw segments when switching back to volume/stack viewport from 3D viewport (#5430)
Co-authored-by: Vinicius Faria <viniciusfariaresende@gmail.com>
2025-10-07 18:40:32 -03:00
ohif-bot
c4902f2b9e chore(version): Update package versions [skip ci] 2025-10-07 18:35:26 +00:00
ohif-bot
1423ecc9d8 chore(version): version.json [skip ci] 2025-10-07 18:35:16 +00:00
devin-ai-integration[bot]
5040c947d2
fix: validation for Percentage of Max SUV input field in TMTV module (#5417)
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2025-10-07 14:29:07 -04:00
ohif-bot
c05698c5ec chore(version): Update package versions [skip ci] 2025-10-07 17:29:12 +00:00
ohif-bot
3dd18a453a chore(version): version.json [skip ci] 2025-10-07 17:29:04 +00:00
Vinícius Alves de Faria Resende
2c6ce21c8f
fix(Segmentation): [Bug #5420] Segmentation color resets after using toggleOneUp (#5465) 2025-10-07 13:23:26 -04:00
ohif-bot
0803dce328 chore(version): Update package versions [skip ci] 2025-10-07 15:48:25 +00:00
ohif-bot
990ae853b0 chore(version): version.json [skip ci] 2025-10-07 15:48:17 +00:00
Vinícius Alves de Faria Resende
3c421f124e
test(CornerstoneUtils): Adding unit tests for most of Cornerstone Extension utilities (#5454) 2025-10-07 11:42:47 -04:00
ohif-bot
44beac799f chore(version): Update package versions [skip ci] 2025-10-07 13:15:00 +00:00
ohif-bot
3b4b59c32b chore(version): version.json [skip ci] 2025-10-07 13:14:53 +00:00
Pedro Köhler
7f12f398fb
fix(measurementTrackingMachine): remove unreachable states (#5460) 2025-10-07 09:09:51 -04:00
ohif-bot
891b752e69 chore(version): Update package versions [skip ci] 2025-10-07 12:59:00 +00:00
ohif-bot
42bf9c1484 chore(version): version.json [skip ci] 2025-10-07 12:58:52 +00:00
Pedro Köhler
4d04dd5651
fix(toolbar): prevent duplicate command execution on repeated interactions (#5456) 2025-10-07 08:52:56 -04:00
ohif-bot
9e79e76bab chore(version): Update package versions [skip ci] 2025-10-06 13:44:50 +00:00
ohif-bot
a58371e83b chore(version): version.json [skip ci] 2025-10-06 13:44:43 +00:00
Alireza
d2ae13b03f
fix: viewport ready event firing logic (#5462)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-06 09:39:56 -04:00
ohif-bot
c9b687900e chore(version): Update package versions [skip ci] 2025-10-06 13:35:37 +00:00
ohif-bot
282633f907 chore(version): version.json [skip ci] 2025-10-06 13:35:30 +00:00
Pedro Köhler
e2964bf669
fix(router): opt in to React Router v7 future flags (#5461) 2025-10-06 09:30:36 -04:00
ohif-bot
fae3b25b7b chore(version): Update package versions [skip ci] 2025-10-06 13:01:53 +00:00
ohif-bot
64ee6d529f chore(version): version.json [skip ci] 2025-10-06 13:01:45 +00:00
Sofien-Sellami
792db26ff1
fix: Safely handle missing active viewport (#5448) 2025-10-06 08:56:31 -04:00
ohif-bot
60633a8f3f chore(version): Update package versions [skip ci] 2025-10-06 12:56:17 +00:00
ohif-bot
07eeb8e5fe chore(version): version.json [skip ci] 2025-10-06 12:56:08 +00:00
Igor Octaviano
851e74d7b8
feat(MeasurementService): add rendering of unmapped measurements (#5416) 2025-10-06 08:50:17 -04:00
ohif-bot
639863a8ef chore(version): Update package versions [skip ci] 2025-10-03 20:36:59 +00:00
ohif-bot
a00f610b2d chore(version): version.json [skip ci] 2025-10-03 20:36:52 +00:00
Alireza
9e951e8800
fix: duplicate segmentation entries on layout switch (#5458)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2025-10-03 16:31:25 -04:00
ohif-bot
71c16615d1 chore(version): Update package versions [skip ci] 2025-10-03 16:32:53 +00:00
ohif-bot
b1fc82315c chore(version): version.json [skip ci] 2025-10-03 16:32:46 +00:00
Alireza
6a1df9de4a
fix: study browser mode for multiple studies (#5457)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2025-10-03 12:28:05 -04:00
ohif-bot
06445dcaa2 chore(version): Update package versions [skip ci] 2025-10-02 21:10:24 +00:00
ohif-bot
a344183355 chore(version): version.json [skip ci] 2025-10-02 21:10:17 +00:00
ZZzzaaKK
2f28a0deab
fix(studyBrowserCustomization): fix thumbnail menu item actions in study browser (#5283) 2025-10-02 17:05:45 -04:00
ohif-bot
e04310a02d chore(version): Update package versions [skip ci] 2025-10-01 18:37:20 +00:00
ohif-bot
4efb7efd0e chore(version): version.json [skip ci] 2025-10-01 18:37:11 +00:00
Bill Wallace
9ad0d7fc8c
feat: Add inherit from basic/longitudinal modes (#5435)
Co-authored-by: Ibrahim <ibrahim.mdev@gmail.com>
2025-10-01 14:31:26 -04:00
ohif-bot
71d21ee184 chore(version): Update package versions [skip ci] 2025-09-30 22:34:04 +00:00
ohif-bot
9677dfdb90 chore(version): version.json [skip ci] 2025-09-30 22:33:57 +00:00
Smoothengineer
5b361fb289
docs: grammar: change "it's" to "its" (#5451) 2025-09-30 18:29:00 -04:00
ohif-bot
d9c5b840a5 chore(version): Update package versions [skip ci] 2025-09-30 19:12:30 +00:00
ohif-bot
ec3a70b5a7 chore(version): version.json [skip ci] 2025-09-30 19:12:18 +00:00
Joe Boccanfuso
a46b00f76b
chore(deps): Update cornerstone3D to 4.3.14. (#5450) 2025-09-30 15:07:13 -04:00
ohif-bot
f0e9865ca1 chore(version): Update package versions [skip ci] 2025-09-30 17:55:16 +00:00
ohif-bot
0d37705435 chore(version): version.json [skip ci] 2025-09-30 17:55:07 +00:00
Vinícius Alves de Faria Resende
12ac509c40
test(SegmentationService): Adding 98.63% of test line coverage to Segmentation Service through unit tests (#5421) 2025-09-30 13:49:13 -04:00
ohif-bot
9353a840ee chore(version): Update package versions [skip ci] 2025-09-29 20:01:26 +00:00
ohif-bot
8030577fb2 chore(version): version.json [skip ci] 2025-09-29 20:01:18 +00:00
Joe Boccanfuso
dd86a8eabd
fix(segmentation): Restored segment label tool in longitudinal mode. (#5443) 2025-09-29 15:56:11 -04:00
ohif-bot
47164463cc chore(version): Update package versions [skip ci] 2025-09-29 16:53:02 +00:00
ohif-bot
00b74664f9 chore(version): version.json [skip ci] 2025-09-29 16:52:54 +00:00
Dan Rukas
c91752d575
ui(settings): Moved Segment Label Display from tools to settings panel (#5422)
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2025-09-29 12:47:45 -04:00
ohif-bot
41d4398342 chore(version): Update package versions [skip ci] 2025-09-29 02:32:36 +00:00
ohif-bot
f0a5795b68 chore(version): version.json [skip ci] 2025-09-29 02:32:30 +00:00
Joe Boccanfuso
80f314a422
fix(security): Removed dependency on tar-fs by removing dependencies on storybook and sharp. (#5438) 2025-09-28 22:28:06 -04:00
ohif-bot
a6408d6033 chore(version): Update package versions [skip ci] 2025-09-26 14:10:20 +00:00
ohif-bot
5332d3e5f5 chore(version): version.json [skip ci] 2025-09-26 14:10:12 +00:00
Joe Boccanfuso
d41eca4ed5
chore(deps): update cornerstone to 4.3.10 (#5436) 2025-09-26 10:04:30 -04:00
ohif-bot
a5ddcf43de chore(version): Update package versions [skip ci] 2025-09-25 18:12:56 +00:00
ohif-bot
bd19ab983d chore(version): version.json [skip ci] 2025-09-25 18:12:49 +00:00
Igor Octaviano
d88a341884
fix: Improve rt handling for bulkdata (#5415) 2025-09-25 14:07:35 -04:00
ohif-bot
6db50d26b2 chore(version): Update package versions [skip ci] 2025-09-25 14:26:37 +00:00
ohif-bot
3906c754f1 chore(version): version.json [skip ci] 2025-09-25 14:26:30 +00:00
毛知劲 | LIS/PACS/RIS 产品负责人
7783d0f558
fix(i18n): Add and update i18n Translation for Toolbar Tool Names (#5392) 2025-09-25 10:22:02 -04:00
ohif-bot
add69e5e4f chore(version): Update package versions [skip ci] 2025-09-22 02:53:26 +00:00
ohif-bot
d32edcca45 chore(version): version.json [skip ci] 2025-09-22 02:53:19 +00:00
Vinícius Alves de Faria Resende
69dbe27784
feat(Segmentation): Segmentation highlight animation function selection (#5401) 2025-09-21 22:48:35 -04:00
ohif-bot
de201d567f chore(version): Update package versions [skip ci] 2025-09-19 13:30:27 +00:00
ohif-bot
26a042d8b9 chore(version): version.json [skip ci] 2025-09-19 13:30:20 +00:00
Vinícius Alves de Faria Resende
74b82bd934
fix(SegmentationService): _getSegmentCenter wrongly handling seg center availability (#5396) 2025-09-19 09:25:32 -04:00
ohif-bot
a7576e07a7 chore(version): Update package versions [skip ci] 2025-09-17 19:40:05 +00:00
ohif-bot
66b2f16c9e chore(version): version.json [skip ci] 2025-09-17 19:39:58 +00:00
Joe Boccanfuso
cf10e3cf67
chore(tests): update screenshots (#5413) 2025-09-17 15:35:13 -04:00
ohif-bot
3ea981b40c chore(version): Update package versions [skip ci] 2025-09-17 16:07:53 +00:00
ohif-bot
e1ce9c63ee chore(version): version.json [skip ci] 2025-09-17 16:07:46 +00:00
dependabot[bot]
06073af035
chore(deps): bump axios from 1.11.0 to 1.12.0 (#5412)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2025-09-17 12:02:33 -04:00
ohif-bot
19f7bba5d8 chore(version): Update package versions [skip ci] 2025-09-16 19:56:57 +00:00
ohif-bot
5f7045eb09 chore(version): version.json [skip ci] 2025-09-16 19:56:51 +00:00
dependabot[bot]
8610c862a9
chore(deps): bump axios from 1.11.0 to 1.12.0 (#5402)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2025-09-16 15:52:13 -04:00
ohif-bot
8c8a4c2222 chore(version): Update package versions [skip ci] 2025-09-10 16:44:52 +00:00
ohif-bot
57cc0b0ae3 chore(version): version.json [skip ci] 2025-09-10 16:44:45 +00:00
Vinícius Alves de Faria Resende
56c5828b02
fix(ErrorBoundary): Fixing console errors and Improving error logging for better developer experience (#5378) 2025-09-10 12:40:09 -04:00
ohif-bot
f6d05bc21c chore(version): Update package versions [skip ci] 2025-09-05 12:39:54 +00:00
ohif-bot
a5d72a130a chore(version): version.json [skip ci] 2025-09-05 12:39:47 +00:00
Vinícius Alves de Faria Resende
d6ea179ac4
fix(cornerstone-dicom-rt): adding caching usage to cornerstone-dicom-rt SOP Class Handler (#5387) 2025-09-05 08:35:16 -04:00
ohif-bot
7de1c78fc4 chore(version): Update package versions [skip ci] 2025-08-29 13:16:02 +00:00
ohif-bot
5f8f559426 chore(version): version.json [skip ci] 2025-08-29 13:15:55 +00:00
Omar Hamad
79473c2ea4
fix(oidc): resolve navigation throttling and blank screen during sign-in/sign-out with Keycloak + dcm4chee + Traefik (#5373) 2025-08-29 09:11:09 -04:00
ohif-bot
ecf91bdcd4 chore(version): Update package versions [skip ci] 2025-08-29 12:22:34 +00:00
ohif-bot
2df818c8cd chore(version): version.json [skip ci] 2025-08-29 12:22:27 +00:00
이양구
0f6f2bb432
fix: routerBasename declaration location (#5347)
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2025-08-29 08:17:38 -04:00
ohif-bot
9f2835be2d chore(version): Update package versions [skip ci] 2025-08-28 19:12:46 +00:00
ohif-bot
01a1265291 chore(version): version.json [skip ci] 2025-08-28 19:12:40 +00:00
Copilot
83ee20d249
Replace individual system info fields with envinfo command in bug report template (#5368)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sedghi <7490180+sedghi@users.noreply.github.com>
2025-08-28 15:08:02 -04:00
ohif-bot
a0a571cb4b chore(version): Update package versions [skip ci] 2025-08-28 18:04:29 +00:00
ohif-bot
d45fd931b3 chore(version): version.json [skip ci] 2025-08-28 18:04:23 +00:00
Alireza
fc0e7f8572
upgrade cs3d to 4.0 (#5371) 2025-08-28 13:59:26 -04:00
ohif-bot
cb9c099f36 chore(version): Update package versions [skip ci] 2025-08-28 17:02:31 +00:00
ohif-bot
ccb8a0dcc3 chore(version): version.json [skip ci] 2025-08-28 17:02:24 +00:00
Alireza
6a1838bf0d
fix/migration 3p11 (#5370) 2025-08-28 12:57:45 -04:00
ohif-bot
df0593aac9 chore(version): Update package versions [skip ci] 2025-08-28 16:15:59 +00:00
ohif-bot
aa9b881c54 chore(version): version.json [skip ci] 2025-08-28 16:15:51 +00:00
Pedro Köhler
d91cc230e5
fix: seg preview (#5338) 2025-08-28 12:11:03 -04:00
ohif-bot
e0f7b5b5db chore(version): Update package versions [skip ci] 2025-08-25 16:13:39 +00:00
ohif-bot
ada7fb45e1 chore(version): version.json [skip ci] 2025-08-25 16:13:32 +00:00
Alireza
368a176c09
fix: docker deploy (#5359) 2025-08-25 12:08:07 -04:00
ohif-bot
25d411ecf9 chore(version): Update package versions [skip ci] 2025-08-25 15:19:11 +00:00
ohif-bot
6f839142de chore(version): version.json [skip ci] 2025-08-25 15:19:04 +00:00
Copilot
bedb1854f9
fix: Docker build failure due to missing lerna command (#5357)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sedghi <7490180+sedghi@users.noreply.github.com>
2025-08-25 11:14:30 -04:00
ohif-bot
7f8cc666a5 chore(version): Update package versions [skip ci] 2025-08-25 14:27:59 +00:00
ohif-bot
132db911c6 chore(version): version.json [skip ci] 2025-08-25 14:27:52 +00:00
rodrigobasilio2022
d2694048a4
fix: local ModalitiesInStudy check (#5285)
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
Co-authored-by: Alireza <ar.sedghi@gmail.com>
2025-08-25 10:22:40 -04:00
ohif-bot
722efe9587 chore(version): Update package versions [skip ci] 2025-08-25 14:17:15 +00:00
ohif-bot
7e8f702eb3 chore(version): version.json [skip ci] 2025-08-25 14:17:08 +00:00
Pedro Köhler
21d6ba2bb3
fix: add back clear segmentation representations (#5336) 2025-08-25 10:12:33 -04:00
ohif-bot
9b39719149 chore(version): Update package versions [skip ci] 2025-08-25 14:01:15 +00:00
ohif-bot
2f66c7746c chore(version): version.json [skip ci] 2025-08-25 14:01:09 +00:00
Salim Kanoun
b9d6f558cb
fix: Segmentation stats customization module (#5324) 2025-08-25 09:56:36 -04:00
ohif-bot
e071ed740f chore(version): Update package versions [skip ci] 2025-08-25 13:11:45 +00:00
ohif-bot
0b4020a7e0 chore(version): version.json [skip ci] 2025-08-25 13:11:38 +00:00
Igor Octaviano
840b5d37d1
fix: Add seriesInstanceUID fallback for callByRetrieveAETitle (#5332) 2025-08-25 09:06:52 -04:00
ohif-bot
49dddc50d3 chore(version): Update package versions [skip ci] 2025-08-22 14:35:20 +00:00
ohif-bot
396f75b906 chore(version): version.json [skip ci] 2025-08-22 14:35:13 +00:00
Martin Bellehumeur, M. Eng.
6fe9df6ec9
feat: Jump to measurement moves the camera if it is not in the viewport (#5023)
Co-authored-by: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
Co-authored-by: Igor Octaviano <igoroctaviano@gmail.com>
2025-08-22 10:30:18 -04:00
ohif-bot
16759506e5 chore(version): Update package versions [skip ci] 2025-08-22 13:41:26 +00:00
ohif-bot
0688fac419 chore(version): version.json [skip ci] 2025-08-22 13:41:19 +00:00
dependabot[bot]
e1112b7abe
chore(deps): bump sha.js from 2.4.11 to 2.4.12 (#5350)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-22 09:36:19 -04:00
Pedro Köhler
a2133ef6cb
fix: header icon logic (#5339) 2025-08-22 09:34:41 -04:00
ohif-bot
824816154b chore(version): Update package versions [skip ci] 2025-08-20 12:18:35 +00:00
ohif-bot
2fe9866b28 chore(version): version.json [skip ci] 2025-08-20 12:18:28 +00:00
Igor Octaviano
2ed6818171
feat: Add WSI bulk data annotations support (ANN) (#4972)
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2025-08-20 08:13:30 -04:00
ohif-bot
0164ad5519 chore(version): Update package versions [skip ci] 2025-08-15 18:17:11 +00:00
ohif-bot
244a91fda5 chore(version): version.json [skip ci] 2025-08-15 18:17:04 +00:00
Bill Wallace
becba7861f
fix: load 3dsr (#5335) 2025-08-15 14:12:34 -04:00
ohif-bot
730de56a5f chore(version): Update package versions [skip ci] 2025-08-13 20:09:38 +00:00
ohif-bot
72372c022f chore(version): version.json [skip ci] 2025-08-13 20:09:30 +00:00
Leonardo Campos
266b1f58f0
feat(orientationMarkers): improved the orientation markers with a simplified version (#5328) 2025-08-13 16:04:50 -04:00
ohif-bot
ede7c4e3ee chore(version): Update package versions [skip ci] 2025-08-11 18:10:59 +00:00
ohif-bot
a055cfe924 chore(version): version.json [skip ci] 2025-08-11 18:10:51 +00:00
Ujjwal Kumar Baranwal
0e83f4515c
fix: Update Dockerfile (#5319) 2025-08-11 14:06:07 -04:00
ohif-bot
51b2303b0a chore(version): Update package versions [skip ci] 2025-08-11 14:41:28 +00:00
ohif-bot
078cac76bf chore(version): version.json [skip ci] 2025-08-11 14:41:21 +00:00
Alireza
07b310d6e6
docs: fix nav bar (#5322) 2025-08-11 10:36:28 -04:00
ohif-bot
f36eeb182c chore(version): Update package versions [skip ci] 2025-08-11 13:53:50 +00:00
ohif-bot
6242f28bc5 chore(version): version.json [skip ci] 2025-08-11 13:53:43 +00:00
Alireza
2553b54432
docs: update release banner (#5321) 2025-08-11 09:48:32 -04:00
ohif-bot
6a54eee330 chore(version): Update package versions [skip ci] 2025-08-08 14:33:24 +00:00
ohif-bot
6b676750c0 chore(version): version.json [skip ci] 2025-08-08 14:33:18 +00:00
devin-ai-integration[bot]
f1d158bbe8
fix: Guard series.instances in DicomJSONDataSource to prevent TypeError (OHI-2114) (#5312)
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Alireza <ar.sedghi@gmail.com>
2025-08-08 10:28:42 -04:00
ohif-bot
96862d64fc chore(version): Update package versions [skip ci] 2025-08-05 14:22:01 +00:00
ohif-bot
0f201ecf16 chore(version): version.json [skip ci] 2025-08-05 14:21:53 +00:00
Alireza
479d26f7c7
chore: remove manual approve (#5299) 2025-08-05 10:17:00 -04:00
ohif-bot
481c2ff781 chore(version): Update package versions [skip ci] 2025-08-05 14:11:38 +00:00
ohif-bot
0687120542 chore(version): version.json [skip ci] 2025-08-05 14:11:31 +00:00
Alireza
1bfb680b6b
chore(ci): move to next version [BUMP BETA] (#5298) 2025-08-05 10:06:19 -04:00
ohif-bot
974ef29aa1 chore(version): Update package versions [skip ci] 2025-08-05 13:31:53 +00:00
ohif-bot
a4d1f56c01 chore(version): version.json [skip ci] 2025-08-05 13:31:46 +00:00
Alireza
35bc074a53
fix(annotation): Add command to show pleura percentage in USAnnotationPanel and update condition for BLinePleuraPercentage (#5297) 2025-08-05 09:26:52 -04:00
ohif-bot
4d74611eb1 chore(version): Update package versions [skip ci] 2025-07-31 04:25:53 +00:00
ohif-bot
79cfc58533 chore(version): version.json [skip ci] 2025-07-31 04:25:47 +00:00
Pedro Köhler
735405a855
feat: add support to scoord3d (#5016)
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2025-07-31 00:21:26 -04:00
ohif-bot
af40f06524 chore(version): Update package versions [skip ci] 2025-07-30 14:12:33 +00:00
ohif-bot
568cd0b39d chore(version): version.json [skip ci] 2025-07-30 14:12:26 +00:00
rodrigobasilio2022
8643c868fd
Adds containsAll validator (#5279) 2025-07-30 10:07:12 -04:00
ohif-bot
eede2945ae chore(version): Update package versions [skip ci] 2025-07-30 02:35:07 +00:00
ohif-bot
1fc38c7379 chore(version): version.json [skip ci] 2025-07-30 02:35:00 +00:00
Pedro Köhler
271b84f78f
feat: improve segment label (#5217)
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2025-07-29 22:30:18 -04:00
ohif-bot
dd896fea25 chore(version): Update package versions [skip ci] 2025-07-28 19:30:15 +00:00
ohif-bot
1e3f69d977 chore(version): version.json [skip ci] 2025-07-28 19:30:08 +00:00
Joe Boccanfuso
341f1c4ce7
fix(colorbar): Allow for AdvancedRenderingControls to be placed at the left or right of the viewport. (#5273) 2025-07-28 15:25:36 -04:00
ohif-bot
b8ff0a80f0 chore(version): Update package versions [skip ci] 2025-07-28 16:25:07 +00:00
ohif-bot
760194ac80 chore(version): version.json [skip ci] 2025-07-28 16:24:59 +00:00
Joe Boccanfuso
d24fe54d2b
fix(colorbar): Allow for AdvancedRenderingControls to be placed at the top or bottom of the viewport. (#5270) 2025-07-28 12:19:58 -04:00
ohif-bot
1cc78112e5 chore(version): Update package versions [skip ci] 2025-07-28 13:42:43 +00:00
ohif-bot
0f816e4733 chore(version): version.json [skip ci] 2025-07-28 13:42:35 +00:00
Salim Kanoun
04dcacd3a5
fix: null save voi range properties (#5268) 2025-07-28 09:37:24 -04:00
Joe Boccanfuso
47e231f061
fix(multiframes): Corrected combining frame instances for multiframes. (#5264) 2025-07-28 09:35:29 -04:00
ohif-bot
4b7c26e273 chore(version): Update package versions [skip ci] 2025-07-28 05:41:04 +00:00
ohif-bot
d45dc473ad chore(version): version.json [skip ci] 2025-07-28 05:40:57 +00:00
dxlin
c766f3c054
test(SegmentationPanel): add test for jump to center of segments from PACS and basic add, rename, delete from panel (#5262) 2025-07-28 01:35:50 -04:00
ohif-bot
03941dca8e chore(version): Update package versions [skip ci] 2025-07-25 17:36:46 +00:00
ohif-bot
be6e228c36 chore(version): version.json [skip ci] 2025-07-25 17:36:39 +00:00
Ibrahim
570e087007
fix(tooltips): tool tips should be portals (#5265) 2025-07-25 13:30:43 -04:00
ohif-bot
afac23a79a chore(version): Update package versions [skip ci] 2025-07-25 13:47:18 +00:00
ohif-bot
3322f652fe chore(version): version.json [skip ci] 2025-07-25 13:47:10 +00:00
Emmanuel Ferdman
d0cf9e02f4
fix: prevent failure in DICOM loader for wadouri type (#5260)
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
2025-07-25 09:41:53 -04:00
ohif-bot
84e3e43ae3 chore(version): Update package versions [skip ci] 2025-07-24 17:03:31 +00:00
ohif-bot
71b685364f chore(version): version.json [skip ci] 2025-07-24 17:03:24 +00:00
Joe Boccanfuso
3c8446a5e5
fix(ArrowAnnotate): Allow free-form text for arrow annotations (#5259) 2025-07-24 12:58:45 -04:00
ohif-bot
4e6530d1d8 chore(version): Update package versions [skip ci] 2025-07-23 22:13:34 +00:00
ohif-bot
0b87691d50 chore(version): version.json [skip ci] 2025-07-23 22:13:27 +00:00
Joe Boccanfuso
730046f83c
Fix flaky SEGDataOverlayForUnreferencedDisplaySetNoHydration test. (#5254) 2025-07-23 18:08:42 -04:00
ohif-bot
763002f2fe chore(version): Update package versions [skip ci] 2025-07-23 19:10:24 +00:00
ohif-bot
76e630cf61 chore(version): version.json [skip ci] 2025-07-23 19:10:18 +00:00
arul-trenser
428b6ffbe7
fix: issue introduced from PR 5022 (#5223)
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2025-07-23 15:05:42 -04:00
ohif-bot
78597aacac chore(version): Update package versions [skip ci] 2025-07-23 18:20:06 +00:00
ohif-bot
eacebad315 chore(version): version.json [skip ci] 2025-07-23 18:19:59 +00:00
MatheusRdk
c8261d9883
Handle 200 status response and add default error handling (#5227)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-23 14:14:08 -04:00
ohif-bot
eedaa9a2e2 chore(version): Update package versions [skip ci] 2025-07-23 17:58:03 +00:00
ohif-bot
fa37acc2fb chore(version): version.json [skip ci] 2025-07-23 17:57:56 +00:00
dependabot[bot]
05526e5cdc
chore(deps): bump axios from 1.10.0 to 1.11.0 (#5252)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2025-07-23 13:53:02 -04:00
ohif-bot
cf2e58bdb9 chore(version): Update package versions [skip ci] 2025-07-23 16:53:09 +00:00
ohif-bot
9b953f0942 chore(version): version.json [skip ci] 2025-07-23 16:53:02 +00:00
Ibrahim
75cc6eff32
fix(calibration): do not override user set calibration (#5231)
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2025-07-23 12:48:29 -04:00
ohif-bot
c271e869c2 chore(version): Update package versions [skip ci] 2025-07-23 16:27:02 +00:00
ohif-bot
b71b14efdd chore(version): version.json [skip ci] 2025-07-23 16:26:55 +00:00
Teo Udovčić
7ffe17deea
fix: disable seg download/export buttons until a user has drawn something (#4953) 2025-07-23 12:21:31 -04:00
ohif-bot
dd2e89bfdb chore(version): Update package versions [skip ci] 2025-07-23 16:15:47 +00:00
ohif-bot
18f8c88a89 chore(version): version.json [skip ci] 2025-07-23 16:15:40 +00:00
Patrick Wespi
bd3ff5f57c
fix(ViewportOrientationMarkers): round rotation to fix floating point issue (#5135)
Co-authored-by: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com>
2025-07-23 12:10:49 -04:00
ohif-bot
04a599962d chore(version): Update package versions [skip ci] 2025-07-23 14:55:46 +00:00
ohif-bot
3be5d84fc4 chore(version): version.json [skip ci] 2025-07-23 14:55:40 +00:00
Joe Boccanfuso
83d4bc4a5a
fix(security): Removed stylus package due to potential security vulnerability and we don't use it. (#5250) 2025-07-23 10:50:53 -04:00
Joe Boccanfuso
83ea0ad93e
fix(docs): Added docs for multimonitor and local linking (#5247) 2025-07-23 10:14:01 -04:00
ohif-bot
b77b2f3fa0 chore(version): Update package versions [skip ci] 2025-07-22 17:35:21 +00:00
ohif-bot
111c3b3d0d chore(version): version.json [skip ci] 2025-07-22 17:35:15 +00:00
dependabot[bot]
76a2b90c17
chore(deps): bump form-data from 4.0.3 to 4.0.4 (#5244)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
Co-authored-by: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com>
2025-07-22 13:30:29 -04:00
ohif-bot
aa83cda49c chore(version): Update package versions [skip ci] 2025-07-22 12:36:09 +00:00
ohif-bot
1ae4967fe5 chore(version): version.json [skip ci] 2025-07-22 12:36:02 +00:00
arul-trenser
12de7a85c9
feat(segmentation): Add customization for handling missing referencedDisplaySetInstanceUID for the SEG/RTSTRUCT. (#4983) 2025-07-22 08:30:54 -04:00
ohif-bot
91d0ae7da6 chore(version): Update package versions [skip ci] 2025-07-21 14:49:45 +00:00
ohif-bot
f7fab0c461 chore(version): version.json [skip ci] 2025-07-21 14:49:38 +00:00
Joe Boccanfuso
bde0eb1f07
fix(docs): Added entry for the showStudyList configuration setting. (#5235) 2025-07-21 10:44:28 -04:00
ohif-bot
73ee3140ea chore(version): Update package versions [skip ci] 2025-07-21 14:20:21 +00:00
ohif-bot
2a738dec09 chore(version): version.json [skip ci] 2025-07-21 14:20:15 +00:00
Joe Boccanfuso
3d5ee687cb
fix(security): Pin eslint-config-prettier and eslint-plugin-prettier versions. (#5234) 2025-07-21 10:15:28 -04:00
ohif-bot
7060aeca4b chore(version): Update package versions [skip ci] 2025-07-21 13:11:39 +00:00
ohif-bot
5ecb8e9821 chore(version): version.json [skip ci] 2025-07-21 13:11:32 +00:00
Salim Kanoun
ed3de96e4c
fix: labelmap init (#5228) 2025-07-21 09:06:34 -04:00
ohif-bot
db8a54d965 chore(version): Update package versions [skip ci] 2025-07-18 16:13:18 +00:00
ohif-bot
3980150aef chore(version): version.json [skip ci] 2025-07-18 16:13:10 +00:00
Joe Boccanfuso
3d4ec3181d
fix(multimonitor): Study browser more menu fixes (#5208) 2025-07-18 12:08:18 -04:00
ohif-bot
779907e526 chore(version): Update package versions [skip ci] 2025-07-17 12:16:46 +00:00
ohif-bot
1841d6202f chore(version): version.json [skip ci] 2025-07-17 12:16:38 +00:00
arul-trenser
6a4ca70836
fix: image slices are displayed in reverse order, if we switch from common layout to 2D MPR (#5022) 2025-07-17 08:11:26 -04:00
ohif-bot
8dda7d5f81 chore(version): Update package versions [skip ci] 2025-07-16 18:45:48 +00:00
ohif-bot
e207f58031 chore(version): version.json [skip ci] 2025-07-16 18:45:41 +00:00
Ibrahim
faef74ab21
fix(viewportgrid): don't subscribe to duplicate event listeners (#5218) 2025-07-16 14:40:47 -04:00
Ibrahim
3ff9a65ef3
fix(black-viewports): MPR viewports were turning black if their parent stack had it's properties reset (#5219) 2025-07-16 14:40:20 -04:00
Alexey Klimovich
26d77fb149
fix(DicomUpload): Fix upload form and some scrollbars styles (#5125) 2025-07-16 14:38:11 -04:00
ohif-bot
5977326665 chore(version): Update package versions [skip ci] 2025-07-16 17:18:03 +00:00
ohif-bot
27e4f0440c chore(version): version.json [skip ci] 2025-07-16 17:17:56 +00:00
Vishnu Suresh Perumbavoor
f38805e6f1
fix(segmentation): Fix segmentationid undefined 5106 (#5107) 2025-07-16 13:12:47 -04:00
ohif-bot
a7892c0d59 chore(version): Update package versions [skip ci] 2025-07-16 00:15:39 +00:00
ohif-bot
991f17e0ca chore(version): version.json [skip ci] 2025-07-16 00:15:32 +00:00
Joe Boccanfuso
522d2aa764
fix(TMTV): The TMTV CSV file now has the correct name and contents (#5215) 2025-07-15 20:09:23 -04:00
ohif-bot
fceb515a68 chore(version): Update package versions [skip ci] 2025-07-15 13:07:36 +00:00
ohif-bot
e1fb97f862 chore(version): version.json [skip ci] 2025-07-15 13:07:29 +00:00
Joe Boccanfuso
e0289dc49f
fix(segmentation): Removed LOAD/hydrate button for segmentation overlays (#5214) 2025-07-15 09:02:36 -04:00
ohif-bot
302705ea4d chore(version): Update package versions [skip ci] 2025-07-14 15:55:44 +00:00
ohif-bot
ff0568f2ab chore(version): version.json [skip ci] 2025-07-14 15:55:36 +00:00
Joe Boccanfuso
545411137c
fix(panels): Allow for setting the initial and minimum expanded widths of each side panel. (#5207) 2025-07-14 11:50:27 -04:00
ohif-bot
1f33b291b9 chore(version): Update package versions [skip ci] 2025-07-14 13:15:07 +00:00
ohif-bot
768e5ba928 chore(version): version.json [skip ci] 2025-07-14 13:15:00 +00:00
rodrigobasilio2022
c175837273
feat(viewport): Enhance Orientation Menu with Reformat Option and UI Improvements (#5184)
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
Co-authored-by: Alireza <ar.sedghi@gmail.com>
2025-07-14 09:10:09 -04:00
ohif-bot
529806c0d9 chore(version): Update package versions [skip ci] 2025-07-14 02:39:23 +00:00
ohif-bot
658d824505 chore(version): version.json [skip ci] 2025-07-14 02:39:16 +00:00
Joe Boccanfuso
94bdcf414d
fix(UI): Restored the scroll bar OHIF L&F (#5202) 2025-07-13 22:34:18 -04:00
ohif-bot
a24ec13239 chore(version): Update package versions [skip ci] 2025-07-11 21:20:32 +00:00
ohif-bot
2c7c62443c chore(version): version.json [skip ci] 2025-07-11 21:20:25 +00:00
rodrigobasilio2022
540923ad8b
fix: enhance preview accept method (#5199) 2025-07-11 17:15:26 -04:00
ohif-bot
df926e2513 chore(version): Update package versions [skip ci] 2025-07-11 20:43:30 +00:00
ohif-bot
86ad50d886 chore(version): version.json [skip ci] 2025-07-11 20:43:23 +00:00
Dan Rukas
0ed9ef06c1
ui(icons): Adds action and helper icon artwork for segmentation (#5200) 2025-07-11 16:38:11 -04:00
Vinícius Alves de Faria Resende
4a59126dd9
fix(UnitTests): Fixing "Cannot find module @cornerstonejs/core" error while running unit tests (#5148) 2025-07-11 16:36:49 -04:00
ohif-bot
277cef2168 chore(version): Update package versions [skip ci] 2025-07-11 17:49:56 +00:00
ohif-bot
168d5b27f3 chore(version): version.json [skip ci] 2025-07-11 17:49:48 +00:00
rodrigobasilio2022
fd5bcee909
fix: exception in newly added segmentations (#5198) 2025-07-11 13:44:22 -04:00
ohif-bot
8bbf83fb84 chore(version): Update package versions [skip ci] 2025-07-11 16:38:14 +00:00
ohif-bot
4253982050 chore(version): version.json [skip ci] 2025-07-11 16:38:07 +00:00
Ibrahim
10d93161b4
feat(rendering): Introduce WebGLContextPool for parallel rendering in ContextPoolRenderingEngine (#5196) 2025-07-11 12:33:24 -04:00
ohif-bot
7d3e222182 chore(version): Update package versions [skip ci] 2025-07-11 15:30:57 +00:00
ohif-bot
46df245fb8 chore(version): version.json [skip ci] 2025-07-11 15:30:50 +00:00
Pedro Köhler
4d3ff5a6cc
feat: group clear measurements history (#5194) 2025-07-11 11:26:10 -04:00
ohif-bot
4e99f1ed34 chore(version): Update package versions [skip ci] 2025-07-11 13:48:44 +00:00
ohif-bot
2ddeed981d chore(version): version.json [skip ci] 2025-07-11 13:48:38 +00:00
Joe Boccanfuso
eeaf49c61a
fix(security): Patch for Babel vulnerability (#5193) 2025-07-11 09:43:56 -04:00
ohif-bot
2c1e8cb3e1 chore(version): Update package versions [skip ci] 2025-07-10 14:28:05 +00:00
ohif-bot
f772be8ae3 chore(version): version.json [skip ci] 2025-07-10 14:27:58 +00:00
Ibrahim
4c5e34d183
fix(rendering): Introduce SequentialRenderingEngine to resolve canvas size limitation, performance degradation on high res monitors and enhance multi-monitor support (#5195) 2025-07-10 10:23:09 -04:00
ohif-bot
0c62bd5e4e chore(version): Update package versions [skip ci] 2025-07-10 13:38:17 +00:00
ohif-bot
4424d2a2bc chore(version): version.json [skip ci] 2025-07-10 13:38:10 +00:00
Joe Boccanfuso
48473625f6
fix(segmentation overlays): Allow for the addition of multiple segmentation overlays. (#5189) 2025-07-10 09:33:39 -04:00
ohif-bot
32ab291305 chore(version): Update package versions [skip ci] 2025-07-09 18:16:44 +00:00
ohif-bot
93eb0dee19 chore(version): version.json [skip ci] 2025-07-09 18:16:38 +00:00
Pedro Köhler
ac852485cd
feat: add segment label tool (#5164) 2025-07-09 14:11:54 -04:00
ohif-bot
d19cd6ec7b chore(version): Update package versions [skip ci] 2025-07-08 14:25:44 +00:00
ohif-bot
4556dd9713 chore(version): version.json [skip ci] 2025-07-08 14:25:37 +00:00
Ibrahim
7b2e37a44f
fix(measurement-group): use measurment study uid instead of active study uid (#5091) 2025-07-08 10:20:49 -04:00
Ibrahim
64a634cab9
fix(labeling): measurement labeling dialog was overwriting the entire measurement and breaking it (#5095) 2025-07-08 10:19:18 -04:00
ohif-bot
ca7defc668 chore(version): Update package versions [skip ci] 2025-07-07 22:14:28 +00:00
ohif-bot
e5b95de0b0 chore(version): version.json [skip ci] 2025-07-07 22:14:21 +00:00
Joe Boccanfuso
f08cc303e6
fix(overlay-menu): Adding, changing and removing segmentation overlays should update the overlay menu instantly (#5181) 2025-07-07 18:09:32 -04:00
ohif-bot
b8b14b8940 chore(version): Update package versions [skip ci] 2025-07-03 18:19:12 +00:00
ohif-bot
7f19db7f0e chore(version): version.json [skip ci] 2025-07-03 18:19:05 +00:00
Salim Kanoun
e277303395
fix: add force to remove image from cache (#5176) 2025-07-03 14:14:19 -04:00
ohif-bot
f7cf356d46 chore(version): Update package versions [skip ci] 2025-07-03 18:13:29 +00:00
ohif-bot
baad251259 chore(version): version.json [skip ci] 2025-07-03 18:13:23 +00:00
Joe Boccanfuso
24e0263fb9
chore: recovery 2 (#5014) merge to 3.11 (#5175)
Co-authored-by: Alireza <ar.sedghi@gmail.com>
Co-authored-by: Dan Rukas <dan.rukas@gmail.com>
Co-authored-by: Tang Cheng <45505657+tctco@users.noreply.github.com>
2025-07-03 14:08:46 -04:00
ohif-bot
17ed63eb1d chore(version): Update package versions [skip ci] 2025-07-03 02:57:54 +00:00
ohif-bot
6f8592a449 chore(version): version.json [skip ci] 2025-07-03 02:57:48 +00:00
Celian-abd
c112db13a8
feat: Add possibility to add additional props for PanelSection (#5172) 2025-07-02 22:52:49 -04:00
ohif-bot
b0704b88cd chore(version): Update package versions [skip ci] 2025-07-02 12:43:01 +00:00
ohif-bot
8491407319 chore(version): version.json [skip ci] 2025-07-02 12:42:54 +00:00
Joe Boccanfuso
4f6f5254fb
fix(segmentation): Added support for unhydrated RTSTRUCT in MPR. Added support for overlaying segmentations over display sets the segmentations do not reference. (#5168) 2025-07-02 08:38:22 -04:00
ohif-bot
77758fde4f chore(version): Update package versions [skip ci] 2025-06-27 17:13:02 +00:00
ohif-bot
90943b4dc5 chore(version): version.json [skip ci] 2025-06-27 17:12:55 +00:00
Ibrahim
4bddd53fcd
feat(hp): add onStageChange callback (#5165) 2025-06-27 13:08:21 -04:00
ohif-bot
c2b75e1a50 chore(version): Update package versions [skip ci] 2025-06-27 11:16:22 +00:00
ohif-bot
51f17a92c1 chore(version): version.json [skip ci] 2025-06-27 11:16:15 +00:00
Joe Boccanfuso
c2624f116d
fix(segmentation): Changes to fix problems with non hydrated/loaded segmentations to be viewable when switching hanging protocols (e.g. MPR) (#5139) 2025-06-27 07:11:46 -04:00
ohif-bot
9a81f8cef5 chore(version): Update package versions [skip ci] 2025-06-27 03:02:26 +00:00
ohif-bot
8a35453100 chore(version): version.json [skip ci] 2025-06-27 03:02:20 +00:00
dependabot[bot]
b660a5d523
chore(deps): bump webpack to 5.95.0 (#5163) 2025-06-26 22:57:43 -04:00
ohif-bot
da8ecdd88c chore(version): Update package versions [skip ci] 2025-06-26 20:24:13 +00:00
ohif-bot
ef5ce6c19b chore(version): version.json [skip ci] 2025-06-26 20:24:06 +00:00
dependabot[bot]
c063fe8550
chore(deps-dev): bump webpack from 5.89.0 to 5.94.0 in /extensions/usAnnotation (#5162) 2025-06-26 16:18:57 -04:00
ohif-bot
5524d1e845 chore(version): Update package versions [skip ci] 2025-06-26 16:04:50 +00:00
ohif-bot
27eb442f62 chore(version): version.json [skip ci] 2025-06-26 16:04:44 +00:00
rodrigobasilio2022
9824f79177
feat(labelmap): Add labelmap segmentation in OHIF (#5158) 2025-06-26 11:59:44 -04:00
ohif-bot
e07bb212bb chore(version): Update package versions [skip ci] 2025-06-26 12:48:28 +00:00
ohif-bot
2a06a3c17f chore(version): version.json [skip ci] 2025-06-26 12:48:21 +00:00
dependabot[bot]
4c1356cab7
chore(deps-dev): bump webpack from 5.89.0 to 5.94.0 in /modes/usAnnotation (#5156) 2025-06-26 08:43:27 -04:00
ohif-bot
a17fb5aeba chore(version): Update package versions [skip ci] 2025-06-25 22:43:05 +00:00
ohif-bot
b919ebbc41 chore(version): version.json [skip ci] 2025-06-25 22:42:59 +00:00
Joe Boccanfuso
ec0c4f7451
fix(unit-tests): Update bun.lock to fix unit tests. (#5159) 2025-06-25 18:38:36 -04:00
ohif-bot
746781f6a4 chore(version): Update package versions [skip ci] 2025-06-25 22:13:21 +00:00
ohif-bot
332d498d2c chore(version): version.json [skip ci] 2025-06-25 22:13:14 +00:00
Alireza
6c9d99eef8
fix(build): BUILD_PACKAGES_QUICK PR check (#5160) 2025-06-25 18:07:52 -04:00
Ibrahim
57f07ad9f2
feat(toolbar/hokeys): add pub sub events to hotkeys manager class, subscribe toolbar to hotkeys pressed event (#5157) 2025-06-25 10:43:27 -04:00
dxlin
b1ad3787e4
test(MeasurementPanel): Converted MeasurementPanel interaction tests from cypress to playwright (#5153) 2025-06-24 23:33:21 -04:00
rodrigobasilio2022
226f9b0773
feat: Ultrasound Pleura B-line Annotation Mode & Extension (#5061) 2025-06-24 12:50:48 -04:00
ohif-bot
9b8eef9474 chore(version): Update package versions [skip ci] 2025-06-24 15:50:18 +00:00
ohif-bot
1e605027ff chore(version): version.json [skip ci] 2025-06-24 15:50:11 +00:00
dependabot[bot]
b48aab263f
chore(deps-dev): bump webpack-dev-server from 4.7.3 to 5.2.1 (#5114)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
Co-authored-by: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com>
2025-06-24 11:45:29 -04:00
dependabot[bot]
08d978bd75
chore(deps): bump pbkdf2 from 3.1.2 to 3.1.3 (#5152)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-24 11:43:19 -04:00
ohif-bot
4857e0002b chore(version): Update package versions [skip ci] 2025-06-20 15:31:20 +00:00
ohif-bot
9ed2d88cb1 chore(version): version.json [skip ci] 2025-06-20 15:31:13 +00:00
Ibrahim
d6d3fa7ef4
fix(action-corners): check hideWhenDisabled at both the evaluator and prop levels (#5149) 2025-06-20 11:26:26 -04:00
ohif-bot
3f1ea26eba chore(version): Update package versions [skip ci] 2025-06-18 18:20:36 +00:00
ohif-bot
9f80732674 chore(version): version.json [skip ci] 2025-06-18 18:20:30 +00:00
Vinícius Alves de Faria Resende
268d62e991
fix(UnitTest): run was failing due to JS tests importing TS modules (#5145) 2025-06-18 14:15:50 -04:00
ohif-bot
f6337e0970 chore(version): Update package versions [skip ci] 2025-06-18 03:08:58 +00:00
ohif-bot
2ed6172861 chore(version): version.json [skip ci] 2025-06-18 03:08:52 +00:00
Patrick Wespi
dc829c8fca
fix(getToolbarModule): fix enabled state of image slice sync (#5136) 2025-06-17 23:03:51 -04:00
ohif-bot
afc2ca0dce chore(version): Update package versions [skip ci] 2025-06-13 14:48:30 +00:00
ohif-bot
abb6da4458 chore(version): version.json [skip ci] 2025-06-13 14:48:22 +00:00
Joe Boccanfuso
5311c941f7
fix(hp): When reapplying an hp the display set selectors should be considered. (#5074)
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2025-06-13 10:43:31 -04:00
ohif-bot
4199d788a8 chore(version): Update package versions [skip ci] 2025-06-11 16:41:58 +00:00
ohif-bot
40eac04428 chore(version): version.json [skip ci] 2025-06-11 16:41:51 +00:00
dependabot[bot]
abaf6582e0
chore(deps): bump tar-fs from 2.1.2 to 2.1.3 (#5096)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-11 12:37:24 -04:00
ohif-bot
ce70c8401a chore(version): Update package versions [skip ci] 2025-06-11 13:05:36 +00:00
ohif-bot
a906eb04ab chore(version): version.json [skip ci] 2025-06-11 13:05:29 +00:00
Dan
d3c9ff50c7
fix(ToolbarService): Fixed removeButton bug for removing buttons inside sections (#5123)
Co-authored-by: Dan Elkis <dan.elkis@signalpet.com>
2025-06-11 09:00:54 -04:00
Dan
4da7fc307f
feat(commandsModule): Enhanced flipViewport and rotateViewport commands (#5065)
Co-authored-by: Dan Elkis <dan.elkis@signalpet.com>
2025-06-11 08:59:37 -04:00
ohif-bot
68bbe0b1a5 chore(version): Update package versions [skip ci] 2025-06-11 11:41:43 +00:00
ohif-bot
d15494f80c chore(version): version.json [skip ci] 2025-06-11 11:41:36 +00:00
Bill Wallace
75271ca416
fix: data-viewportId name is illegal, renamed to data-viewportid (#5121) 2025-06-11 07:36:26 -04:00
ohif-bot
a83bd298f5 chore(version): Update package versions [skip ci] 2025-06-10 15:52:05 +00:00
ohif-bot
8ff59dacb5 chore(version): version.json [skip ci] 2025-06-10 15:51:59 +00:00
Ibrahim
26fd51f535
fix(markerlabelmap): accept preview/reject preview not working when the marker annotation tools are active (#5101)
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2025-06-10 11:47:20 -04:00
ohif-bot
10ef509ff1 chore(version): Update package versions [skip ci] 2025-06-09 13:32:53 +00:00
ohif-bot
735a13a85b chore(version): version.json [skip ci] 2025-06-09 13:32:47 +00:00
Joe Boccanfuso
a361e556ef
fix(touch): Prevent touch drag to refresh the browser page. (#5108) 2025-06-09 09:28:00 -04:00
ohif-bot
9baf153d0d chore(version): Update package versions [skip ci] 2025-06-09 12:34:55 +00:00
ohif-bot
b99f64da1b chore(version): version.json [skip ci] 2025-06-09 12:34:48 +00:00
Alireza
b194f672c0
docs: improved migration guides for 3p10 (#5110) 2025-06-09 08:30:20 -04:00
ohif-bot
635877f184 chore(version): Update package versions [skip ci] 2025-06-07 17:59:59 +00:00
ohif-bot
2306ec2a6d chore(version): version.json [skip ci] 2025-06-07 17:59:53 +00:00
Joe Boccanfuso
0afb3fc753
fix(WindowLevelActionMenu): The window level menu must show different contents for 3D volume viewports (#5113) 2025-06-07 13:55:33 -04:00
ohif-bot
2234121a19 chore(version): Update package versions [skip ci] 2025-06-05 17:55:24 +00:00
ohif-bot
a1ecc826aa chore(version): version.json [skip ci] 2025-06-05 17:55:17 +00:00
Joe Boccanfuso
1a6aa09a77
fix(touch): Allow for multi-touch in OHIF (#5099) 2025-06-05 13:50:27 -04:00
ohif-bot
2e7124bace chore(version): Update package versions [skip ci] 2025-06-02 17:59:54 +00:00
ohif-bot
2ddfc95bfa chore(version): version.json [skip ci] 2025-06-02 17:59:48 +00:00
Joe Boccanfuso
316d5a7644
fix(tmtv): Corrected the various section names being referenced. (#5093) 2025-06-02 13:55:32 -04:00
ohif-bot
01c7d45c15 chore(version): Update package versions [skip ci] 2025-06-02 16:17:00 +00:00
ohif-bot
e804d7473e chore(version): version.json [skip ci] 2025-06-02 16:16:54 +00:00
Joe Boccanfuso
38ed7ba744
fix(segmentation): Allow for debounced pub/sub events to be reliably cancelled when unsubscribed to. (#5092) 2025-06-02 12:12:31 -04:00
ohif-bot
a1fb7217bd chore(version): Update package versions [skip ci] 2025-05-30 14:16:22 +00:00
ohif-bot
8adbeb54f9 chore(version): version.json [skip ci] 2025-05-30 14:16:16 +00:00
Dan
8b2f80b82e
docs: Fixed incorrect documentation and variables names (#5080)
Co-authored-by: Dan Elkis <dan.elkis@signalpet.com>
2025-05-30 10:11:16 -04:00
ohif-bot
31e19ffe8c chore(version): Update package versions [skip ci] 2025-05-29 12:30:56 +00:00
ohif-bot
4f6c8766b1 chore(version): version.json [skip ci] 2025-05-29 12:30:49 +00:00
Pedro Köhler
5891505c51
feat: create memo when manually adding and removing annotations (#5051) 2025-05-29 08:26:16 -04:00
ohif-bot
9afded1720 chore(version): Update package versions [skip ci] 2025-05-29 02:45:33 +00:00
ohif-bot
60e6e686ec chore(version): version.json [skip ci] 2025-05-29 02:45:26 +00:00
Alireza
c6327acdc1
fix(ui): Prevent unintended text selection and improve component behavior (#5077) 2025-05-28 22:41:15 -04:00
ohif-bot
773d6edaf7 chore(version): Update package versions [skip ci] 2025-05-28 13:13:03 +00:00
ohif-bot
843d99d9ef chore(version): version.json [skip ci] 2025-05-28 13:12:56 +00:00
Dan
c88bdac4b1
fix(Customization): Fixed incorrect events broadcast (#5075)
Co-authored-by: Dan Elkis <dan.elkis@signalpet.com>
2025-05-28 09:08:05 -04:00
ohif-bot
a8d438d8f7 chore(version): Update package versions [skip ci] 2025-05-26 23:13:44 +00:00
ohif-bot
fec45860b8 chore(version): version.json [skip ci] 2025-05-26 23:13:38 +00:00
Alireza
b9ca76ea67
fix: e2e playwright tests runnigns (#5070) 2025-05-26 19:09:26 -04:00
ohif-bot
ffc7d2bd6b chore(version): Update package versions [skip ci] 2025-05-26 20:12:50 +00:00
ohif-bot
1d91871d2c chore(version): version.json [skip ci] 2025-05-26 20:12:43 +00:00
Joe Boccanfuso
ebfa1ff5f2
fix(capture): Disable or enable the tool group based on the show flag. (#5069) 2025-05-26 16:08:17 -04:00
Joe Boccanfuso
1873a8405f
fix(frame-view): After pan and/or zoom, stack scroll is now synchronized for frame view (#5067) 2025-05-26 16:08:01 -04:00
ohif-bot
df35cb55b6 chore(version): Update package versions [skip ci] 2025-05-26 04:09:21 +00:00
ohif-bot
9247d07ccd chore(version): version.json [skip ci] 2025-05-26 04:09:15 +00:00
Joe Boccanfuso
14f5f0c074
fix(router): Expose the react router from the worklist too. (#5062) 2025-05-26 00:04:16 -04:00
ohif-bot
c2cc0832f3 chore(version): Update package versions [skip ci] 2025-05-24 02:16:33 +00:00
ohif-bot
10d64322bf chore(version): version.json [skip ci] 2025-05-24 02:16:27 +00:00
Joe Boccanfuso
cb814e6a60
fix(context-menu): Move the reposition logic from the context menu to the dialog component. (#5060) 2025-05-23 22:12:08 -04:00
ohif-bot
fa9bbe3afc chore(version): Update package versions [skip ci] 2025-05-16 18:20:40 +00:00
ohif-bot
7f2f739b1b chore(version): version.json [skip ci] 2025-05-16 18:20:34 +00:00
Alexis jankowski
dcde841839
fix(cli): removing missing imports in mode template (#5049) 2025-05-16 14:11:01 -04:00
ohif-bot
c784b7e6d5 chore(version): Update package versions [skip ci] 2025-05-16 17:53:12 +00:00
ohif-bot
0d8f43fa30 chore(version): version.json [skip ci] 2025-05-16 17:53:05 +00:00
Alireza
9b1b501d83
fix: backward compatibility with toolbar service (#5052) 2025-05-16 13:42:35 -04:00
Joe Boccanfuso
c6b28654b5
fix(segmentation): segmentation stats calculations were not being done on a subsequent navigation to a mode (#5046) 2025-05-16 13:33:57 -04:00
ohif-bot
fb1c2673a8 chore(version): Update package versions [skip ci] 2025-05-16 17:32:07 +00:00
ohif-bot
b6b06ed09e chore(version): version.json [skip ci] 2025-05-16 17:32:01 +00:00
Joe Boccanfuso
338bd865c3
feat(viewport): Added getter for presentation id provider. (#5053) 2025-05-16 13:22:09 -04:00
ohif-bot
cf1018c779 chore(version): Update package versions [skip ci] 2025-05-15 21:22:31 +00:00
ohif-bot
0f12fa16bc chore(version): version.json [skip ci] 2025-05-15 21:22:25 +00:00
Dan Rukas
04ab79f8fb
ui(feat): Adds light/dark mode support for viewport overlay text and markers (#5041)
Co-authored-by: sedghi <ar.sedghi@gmail.com>
2025-05-15 17:12:53 -04:00
ohif-bot
1fd39626e7 chore(version): Update package versions [skip ci] 2025-05-15 16:18:22 +00:00
ohif-bot
5e406a8c93 chore(version): version.json [skip ci] 2025-05-15 16:18:15 +00:00
Alireza
7c15bb8901
feat(actions): simplify action corner api through the toolbarService (#5033) 2025-05-15 12:08:12 -04:00
ohif-bot
f71b88e639 chore(version): Update package versions [skip ci] 2025-05-13 15:29:21 +00:00
ohif-bot
faaaccdfa7 chore(version): version.json [skip ci] 2025-05-13 15:29:14 +00:00
Celian-abd
da51e6e3c1
fix: Added missing export for LayoutSelector in ui-next (#5040) 2025-05-13 11:24:25 -04:00
ohif-bot
4a91dfdfa5 chore(version): Update package versions [skip ci] 2025-05-12 13:39:55 +00:00
ohif-bot
c2534198ad chore(version): version.json [skip ci] 2025-05-12 13:39:48 +00:00
Dan
950453fd70
fix(NotFoundStudy): Fixed the viewer not-found page when showStudyList: false (#5035) 2025-05-12 09:35:33 -04:00
ohif-bot
f4ba9b3cc6 chore(version): Update package versions [skip ci] 2025-05-09 12:24:02 +00:00
ohif-bot
7610b4c6a5 chore(version): version.json [skip ci] 2025-05-09 12:23:55 +00:00
taliabeckie
349306da40
fix(DicomWebProxyDataSource): bug fix to save Segmentation files back to Kheops (#5028) 2025-05-09 08:19:20 -04:00
ohif-bot
66322c68a2 chore(version): Update package versions [skip ci] 2025-05-08 16:56:20 +00:00
ohif-bot
4e03f34fd4 chore(version): version.json [skip ci] 2025-05-08 16:56:14 +00:00
Alireza
1445e12124
feat(app): Decouple colorbar UI from service and enable action menu programatic control (#5018) 2025-05-08 12:51:30 -04:00
ohif-bot
f14d9ebdd7 chore(version): Update package versions [skip ci] 2025-05-08 16:49:34 +00:00
ohif-bot
a3bf972177 chore(version): version.json [skip ci] 2025-05-08 16:49:26 +00:00
Bill Wallace
578c3939f0
feat(thumbnails): Enhance DICOM Thumbnail Rendering with different strategies (#5004)
Co-authored-by: Martin Bellehumeur, M. Eng. <23396581+mbellehumeur@users.noreply.github.com>
2025-05-08 12:44:56 -04:00
ohif-bot
dee6909a99 chore(version): Update package versions [skip ci] 2025-05-07 21:41:38 +00:00
ohif-bot
12094cc77a chore(version): version.json [skip ci] 2025-05-07 21:41:32 +00:00
Alireza
a5ea3e15c7
fix(orientationMarker): MPR orientation change should get reflected too (#5020) 2025-05-07 17:37:12 -04:00
ohif-bot
f412dc254b chore(version): Update package versions [skip ci] 2025-05-07 20:24:55 +00:00
ohif-bot
c0ed128fb7 chore(version): version.json [skip ci] 2025-05-07 20:24:49 +00:00
Rafael Osipov
c829270c80
feat: add locale files for Russian language, translated texts in locale json files to Russian language. (#4984) 2025-05-07 16:20:10 -04:00
ohif-bot
a16d612a8a chore(version): Update package versions [skip ci] 2025-05-06 15:10:20 +00:00
ohif-bot
5f94ebe81a chore(version): version.json [skip ci] 2025-05-06 15:10:13 +00:00
Ibrahim
8218a9d034
feat(i18n): add Arabic translations (#5013) 2025-05-06 11:05:34 -04:00
ohif-bot
4b94f18f7c chore(version): Update package versions [skip ci] 2025-05-05 20:40:11 +00:00
ohif-bot
8e7e9ca02f chore(version): version.json [skip ci] 2025-05-05 20:40:04 +00:00
Alireza
cd4e6408bc
feat(data overlay): add foreground background control plus orientation change in the UI and add RTDOSE support (#5007) 2025-05-05 16:35:05 -04:00
ohif-bot
c1fced0573 chore(version): Update package versions [skip ci] 2025-05-05 15:32:36 +00:00
ohif-bot
e41019f2b3 chore(version): version.json [skip ci] 2025-05-05 15:32:30 +00:00
Alireza
383f45823c
refactor(viewport): Remove resize detector and optimize viewport resizing logic (#5006) 2025-05-05 11:27:26 -04:00
ohif-bot
6337d2e9cb chore(version): Update package versions [skip ci] 2025-05-02 18:50:57 +00:00
ohif-bot
e987710908 chore(version): version.json [skip ci] 2025-05-02 18:50:50 +00:00
Pedro Köhler
7dbe5e37b0
feat: improve menu modals customizations (#5011) 2025-05-02 14:45:39 -04:00
ohif-bot
ff974e2a03 chore(version): Update package versions [skip ci] 2025-05-02 18:10:04 +00:00
ohif-bot
cccf74d6ea chore(version): version.json [skip ci] 2025-05-02 18:09:57 +00:00
Alireza
4be8495335
fix/remove legacy ui (#5010) 2025-05-02 14:05:40 -04:00
ohif-bot
1cb8d328a4 chore(version): Update package versions [skip ci] 2025-05-01 22:22:48 +00:00
ohif-bot
2c8dda01ae chore(version): version.json [skip ci] 2025-05-01 22:22:42 +00:00
Alireza
4e185e4b21
docs: add llm txt (#5009) 2025-05-01 18:13:21 -04:00
ohif-bot
4732e8093e chore(version): Update package versions [skip ci] 2025-05-01 18:51:19 +00:00
ohif-bot
984471e972 chore(version): version.json [skip ci] 2025-05-01 18:51:13 +00:00
Julia Young
25cb71b3f6
docs: clarify terminology for study, series, and display sets (#5000) 2025-05-01 14:46:21 -04:00
ohif-bot
0e75f6d62c chore(version): Update package versions [skip ci] 2025-04-30 16:29:06 +00:00
ohif-bot
d75b3e25b6 chore(version): version.json [skip ci] 2025-04-30 16:28:59 +00:00
Tang Cheng
0bb9b17636
Fix: issue #4759 Enable proper DICOM image rendering when Rescale parameters are set to null (#5003) 2025-04-30 12:24:06 -04:00
ohif-bot
b21ee9bc5b chore(version): Update package versions [skip ci] 2025-04-29 18:58:50 +00:00
ohif-bot
7ed0f6d53b chore(version): version.json [skip ci] 2025-04-29 18:58:44 +00:00
Alireza
98f8187dfe
fix(referencelines): and bring back the notification for worker updates but disallow duplication (#5005) 2025-04-29 14:53:37 -04:00
ohif-bot
4643d6dc40 chore(version): Update package versions [skip ci] 2025-04-29 17:02:30 +00:00
ohif-bot
258b353269 chore(version): version.json [skip ci] 2025-04-29 17:02:23 +00:00
devin-ai-integration[bot]
0f39496290
fix(template): Update mode template to match current implementation (OHI-1833) (#4998)
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Alireza Sedghi <ar.sedghi@gmail.com>
2025-04-29 12:57:24 -04:00
ohif-bot
325cb3f7d5 chore(version): Update package versions [skip ci] 2025-04-22 17:33:27 +00:00
ohif-bot
088b563bf6 chore(version): version.json [skip ci] 2025-04-22 17:33:21 +00:00
Dan Rukas
09ac43f297
fix(docs): Fix SSR build errors by dynamically importing UI components and resolving other issues (#4991) 2025-04-22 13:28:49 -04:00
ohif-bot
d59828ab22 chore(version): Update package versions [skip ci] 2025-04-22 14:50:19 +00:00
ohif-bot
5f04b0f3be chore(version): version.json [skip ci] 2025-04-22 14:50:12 +00:00
Alireza
bdb847a6eb
fix docs (#4988) 2025-04-22 10:45:14 -04:00
ohif-bot
0052bf1ae3 chore(version): Update package versions [skip ci] 2025-04-22 14:05:34 +00:00
ohif-bot
41815ee2af chore(version): version.json [skip ci] 2025-04-22 14:05:28 +00:00
Alireza
56fdb82812
fix docs (#4986) 2025-04-22 10:00:40 -04:00
ohif-bot
fcde5ddbce chore(version): Update package versions [skip ci] 2025-04-22 13:20:21 +00:00
ohif-bot
7818f406d8 chore(version): version.json [skip ci] 2025-04-22 13:20:15 +00:00
Dan Rukas
329d5b6237
docs(components): Adds new components to ui-next documentation (#4974) 2025-04-22 09:15:40 -04:00
Devu-trenser
3b8faa8a76
feat: Improve unsupported displayset messages (#4979) 2025-04-22 09:11:28 -04:00
ohif-bot
59136e5435 chore(version): Update package versions [skip ci] 2025-04-18 15:38:25 +00:00
ohif-bot
88fccda491 chore(version): version.json [skip ci] 2025-04-18 15:38:19 +00:00
Pedro Köhler
5688a2b4b8
fix(dicomWebClient): use public getter for activeDataSourceName instead of accessing private property (#4973) 2025-04-18 11:33:42 -04:00
ohif-bot
f02ce22ae3 chore(version): Update package versions [skip ci] 2025-04-17 20:49:39 +00:00
ohif-bot
ff5a152270 chore(version): version.json [skip ci] 2025-04-17 20:49:33 +00:00
dependabot[bot]
082014a694
chore(deps): bump estree-util-value-to-estree from 3.2.1 to 3.3.3 in /platform/docs (#4929)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-17 16:43:55 -04:00
dependabot[bot]
194b4971c2
chore(deps): bump @babel/runtime from 7.26.0 to 7.27.0 in /platform/docs (#4964)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-17 16:43:48 -04:00
dependabot[bot]
d6c7b9c23c
chore(deps): bump http-proxy-middleware from 2.0.7 to 2.0.9 (#4963)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-17 16:43:39 -04:00
dependabot[bot]
b82465344c
chore(deps): bump @babel/runtime-corejs3 from 7.24.7 to 7.27.0 (#4962)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-17 16:43:30 -04:00
ohif-bot
f8cb810b92 chore(version): Update package versions [skip ci] 2025-04-17 12:36:52 +00:00
ohif-bot
dbda78df15 chore(version): version.json [skip ci] 2025-04-17 12:36:45 +00:00
Pedro Köhler
66a16cd22f
fix(ExtensionManager): getDataSources method (#4959) 2025-04-17 08:31:12 -04:00
ohif-bot
5a9fcd4bf0 chore(version): Update package versions [skip ci] 2025-04-16 21:40:06 +00:00
ohif-bot
69cddff628 chore(version): version.json [skip ci] 2025-04-16 21:40:00 +00:00
Alireza
08c14e9ba2
fix/runner (#4971) 2025-04-16 17:35:32 -04:00
Alireza
7fd522ab68
fix/runner (#4970) 2025-04-16 16:57:59 -04:00
Alireza
df74557866
fix/runner (#4969) 2025-04-16 16:49:36 -04:00
Alireza
69063a41b7
fix/runner (#4968) 2025-04-16 16:41:35 -04:00
Alireza
41fb597085
fix/runner4 (#4967) 2025-04-16 16:31:24 -04:00
ohif-bot
a3a35471a9 chore(version): Update package versions [skip ci] 2025-04-16 20:21:17 +00:00
ohif-bot
a0bcac15cd chore(version): version.json [skip ci] 2025-04-16 20:21:10 +00:00
Alireza
ac7875128c
fix/runner (#4966) 2025-04-16 16:16:28 -04:00
Alireza
bd02205ef9
fix/runner (#4965) 2025-04-16 16:09:06 -04:00
Alireza
9535422361
fix: github runner (#4961) 2025-04-16 16:02:06 -04:00
ohif-bot
a13380407b chore(version): Update package versions [skip ci] 2025-04-16 20:01:50 +00:00
ohif-bot
1a0d7a930c chore(version): version.json [skip ci] 2025-04-16 20:01:43 +00:00
Alireza
91117f40f8
chore: add test coverage (#4960) 2025-04-16 15:56:52 -04:00
ohif-bot
a41ed3bade chore(version): Update package versions [skip ci] 2025-04-14 14:05:04 +00:00
ohif-bot
f12f2bfec5 chore(version): version.json [skip ci] 2025-04-14 14:04:58 +00:00
Alireza
4a87302f06
fix: making onnxruntime work with rsbuild (#4957) 2025-04-14 09:59:39 -04:00
ohif-bot
5dae147155 chore(version): Update package versions [skip ci] 2025-04-11 19:09:38 +00:00
ohif-bot
4952dab010 chore(version): version.json [skip ci] 2025-04-11 19:09:31 +00:00
Dan Rukas
5425308e55
ui(fix): Study panel scrollbar fix and updates (#4951) 2025-04-11 15:03:56 -04:00
ohif-bot
c50298f394 chore(version): Update package versions [skip ci] 2025-04-11 16:46:37 +00:00
ohif-bot
a82ebeebb2 chore(version): version.json [skip ci] 2025-04-11 16:46:31 +00:00
Pedro Köhler
ed94df0dfe
fix: add back study browser scrollbar (#4942) 2025-04-11 12:41:16 -04:00
Pedro Köhler
4926a9532c
feat: expose scroll thumbnail into view (#4941) 2025-04-11 12:41:04 -04:00
Pedro Köhler
7a36eba67c
fix: enable measurements panel scroll (#4943) 2025-04-11 12:40:35 -04:00
ohif-bot
8a08d26f01 chore(version): Update package versions [skip ci] 2025-04-11 13:47:41 +00:00
ohif-bot
de598cdc1f chore(version): version.json [skip ci] 2025-04-11 13:47:35 +00:00
Pedro Köhler
a9b180c5d4
fix: make datasource selection work (#4944) 2025-04-11 09:42:54 -04:00
ohif-bot
ffc7ab6845 chore(version): Update package versions [skip ci] 2025-04-10 03:41:05 +00:00
ohif-bot
1714aa8ec7 chore(version): version.json [skip ci] 2025-04-10 03:40:59 +00:00
Alireza
ce0d152f92
docs: next version (#4940) 2025-04-09 23:36:24 -04:00
ohif-bot
16bcc06f15 chore(version): Update package versions [skip ci] 2025-04-10 03:30:26 +00:00
ohif-bot
bb42fd2a8d chore(version): version.json [skip ci] 2025-04-10 03:30:20 +00:00
Alireza
e37168094a
chore(version): move to the next beta version [BUMP BETA] (#4939) 2025-04-09 23:25:30 -04:00
ohif-bot
e1e9b5ccb1 chore(version): Update package versions [skip ci] 2025-04-09 20:54:34 +00:00
ohif-bot
6b7e73b78a chore(version): version.json [skip ci] 2025-04-09 20:54:27 +00:00
Alireza
43bc142439
fix(ui): Enhance UI Components and Update CornerstoneJS Dependencies and resizable panels (#4938)
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2025-04-09 16:49:55 -04:00
ohif-bot
c05ec1909f chore(version): Update package versions [skip ci] 2025-04-09 14:00:54 +00:00
ohif-bot
c7529394ad chore(version): version.json [skip ci] 2025-04-09 14:00:48 +00:00
Pedro Köhler
f6f60a63d2
fix: x-ray pixel spacing calibration (#4922) 2025-04-09 09:55:51 -04:00
ohif-bot
0d2ccc5830 chore(version): Update package versions [skip ci] 2025-04-09 03:01:36 +00:00
ohif-bot
08be5cc656 chore(version): version.json [skip ci] 2025-04-09 03:01:30 +00:00
Alireza
c453c29449
docs: migration guides 3p10 (#4937) 2025-04-08 22:57:07 -04:00
ohif-bot
a69dd8b1a0 chore(version): Update package versions [skip ci] 2025-04-08 22:38:59 +00:00
ohif-bot
17c5642a59 chore(version): version.json [skip ci] 2025-04-08 22:38:53 +00:00
Alireza
bd2f843469
chore: update screenshopts for test (#4934) 2025-04-08 18:34:45 -04:00
ohif-bot
8b9b02d84c chore(version): Update package versions [skip ci] 2025-04-08 21:25:58 +00:00
ohif-bot
c9958bafad chore(version): version.json [skip ci] 2025-04-08 21:25:52 +00:00
Dan Rukas
85f465968b
ui(fix): small Create Report dialog fixes (#4935) 2025-04-08 17:21:08 -04:00
ohif-bot
47e491f1c8 chore(version): Update package versions [skip ci] 2025-04-08 16:10:38 +00:00
ohif-bot
e56b53e897 chore(version): version.json [skip ci] 2025-04-08 16:10:32 +00:00
Alireza
2bdf4afa4d
refactor(ui): Migrate components to ui-next (#4930)
Co-authored-by: Dan Rukas <dan.rukas@gmail.com>
2025-04-08 12:06:07 -04:00
Dan Rukas
1b8729dded
ui(components): CinePlayer updated for ui-next (#4932) 2025-04-08 12:03:35 -04:00
ohif-bot
f71d370969 chore(version): Update package versions [skip ci] 2025-04-08 13:48:32 +00:00
ohif-bot
033831ee72 chore(version): version.json [skip ci] 2025-04-08 13:48:24 +00:00
Dan Rukas
49c08298fc
ui(colors): Adds neutral color variable and updates scrollbars (#4933) 2025-04-08 09:43:30 -04:00
elawende
cfa202e89a
fix(OIDC): Use new access_token after refresh (#4853)
Co-authored-by: Ernst Lawende <ernstl@bastion365.nl>
2025-04-08 09:43:06 -04:00
ohif-bot
391a5f3bdd chore(version): Update package versions [skip ci] 2025-04-07 20:50:11 +00:00
ohif-bot
64d65a6830 chore(version): version.json [skip ci] 2025-04-07 20:50:05 +00:00
Alireza
3653de7487
fix(segmentation): Add segment jump for new segments and make panels scrollable (#4928) 2025-04-07 16:45:29 -04:00
Dan Rukas
a8ac297e16
ui(components): Viewport components updated to ui-next with design updates (#4886) 2025-04-07 16:45:05 -04:00
ohif-bot
4e09f85d5d chore(version): Update package versions [skip ci] 2025-04-07 14:09:45 +00:00
ohif-bot
d2f187153d chore(version): version.json [skip ci] 2025-04-07 14:09:39 +00:00
Pedro Köhler
62e5a62066
feat: allow saving to same SR series (#4889) 2025-04-07 10:05:22 -04:00
ohif-bot
7b40963997 chore(version): Update package versions [skip ci] 2025-04-04 17:38:08 +00:00
ohif-bot
75493334cf chore(version): version.json [skip ci] 2025-04-04 17:38:00 +00:00
Pedro Köhler
746f2524eb
fix(cine): Resolve Cine Player Faults on DisplaySet Update (#4909) 2025-04-04 13:33:36 -04:00
ohif-bot
0eb9ff235c chore(version): Update package versions [skip ci] 2025-04-04 16:16:04 +00:00
ohif-bot
e9b95afd4c chore(version): version.json [skip ci] 2025-04-04 16:15:57 +00:00
Alireza
fc33bd0d59
feat(image capture): Enhance SEG and RTSS Support with Dependency Updates and Bug Fixes (#4924) 2025-04-04 12:11:29 -04:00
ohif-bot
479e280fdf chore(version): Update package versions [skip ci] 2025-04-04 16:07:02 +00:00
ohif-bot
d4f81cd2b7 chore(version): version.json [skip ci] 2025-04-04 16:06:55 +00:00
nithin-trenser
54fded554e
feat: Automate tracking prompts for a less disruptive annotation workflow (#4822)
Co-authored-by: Devu Jayalekshmi <devu.jayalekshmi@trenser.com>
2025-04-04 12:02:13 -04:00
ohif-bot
c0391cea1b chore(version): Update package versions [skip ci] 2025-04-03 15:45:43 +00:00
ohif-bot
a9e69eb36f chore(version): version.json [skip ci] 2025-04-03 15:45:36 +00:00
dependabot[bot]
a52be6460b
chore(deps): bump @babel/runtime-corejs2 from 7.25.7 to 7.26.10 (#4843)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-03 11:33:33 -04:00
dependabot[bot]
587b6423cb
chore(deps): bump @babel/helpers from 7.26.0 to 7.26.10 in /platform/docs (#4861)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-03 11:33:19 -04:00
dependabot[bot]
f52a32d6c5
chore(deps): bump @babel/runtime from 7.24.7 to 7.26.10 (#4860)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-03 11:33:09 -04:00
dependabot[bot]
8142c55b6a
chore(deps): bump @babel/runtime-corejs3 from 7.26.0 to 7.26.10 in /platform/docs (#4859)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-03 11:32:54 -04:00
dependabot[bot]
14afb42e2c
chore(deps): bump axios from 0.27.2 to 1.8.4 (#4905)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-03 11:32:45 -04:00
dependabot[bot]
4e8e4f1491
chore(deps): bump tar-fs from 2.1.1 to 2.1.2 (#4901)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-03 11:32:39 -04:00
dependabot[bot]
814a2c914b
chore(deps): bump image-size from 1.2.0 to 1.2.1 in /platform/docs (#4912)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-03 11:32:31 -04:00
ohif-bot
f4fb42adb2 chore(version): Update package versions [skip ci] 2025-04-02 22:23:12 +00:00
ohif-bot
0fee0236c2 chore(version): version.json [skip ci] 2025-04-02 22:23:05 +00:00
Alireza
e7fe879318
chore: update dependabot (#4916) 2025-04-02 18:17:05 -04:00
ohif-bot
a619634678 chore(version): Update package versions [skip ci] 2025-04-02 22:15:26 +00:00
ohif-bot
651a7dc574 chore(version): version.json [skip ci] 2025-04-02 22:15:20 +00:00
Alireza
8432d5f633
fix(seg): Enhance segmentation tools and UI, refactor code, and update dependencies (#4915) 2025-04-02 18:10:47 -04:00
ohif-bot
1dc00d3030 chore(version): Update package versions [skip ci] 2025-04-01 18:23:53 +00:00
ohif-bot
44d450c5b8 chore(version): version.json [skip ci] 2025-04-01 18:23:46 +00:00
Alireza
c75a3f3af5
feat(segmentation): Enhance Segmentation with New AI and Once Click Tools (#4910) 2025-04-01 14:19:03 -04:00
ohif-bot
908482d2e0 chore(version): Update package versions [skip ci] 2025-04-01 13:35:34 +00:00
ohif-bot
6b26db387e chore(version): version.json [skip ci] 2025-04-01 13:35:27 +00:00
Dan Rukas
b7419fb6a1
ui(components): Adds InputNumber component and 4d panel updates (#4874)
Co-authored-by: sedghi <ar.sedghi@gmail.com>
2025-04-01 09:30:32 -04:00
ohif-bot
c4045251fb chore(version): Update package versions [skip ci] 2025-03-31 13:14:52 +00:00
ohif-bot
ec4cc64b06 chore(version): version.json [skip ci] 2025-03-31 13:14:46 +00:00
dxlin
d9473e8db2
test: update Test/tmtv for v3.10.0-beta.136 (#4893) 2025-03-31 09:10:31 -04:00
ohif-bot
7f3fb9bb61 chore(version): Update package versions [skip ci] 2025-03-28 14:57:45 +00:00
ohif-bot
8cf5b52b84 chore(version): version.json [skip ci] 2025-03-28 14:57:39 +00:00
Alireza
d7bd36544a
fix: jump to measurement forever (#4867) 2025-03-28 10:53:04 -04:00
Alireza
eafa2efda5
Revert "fix(measurement): fix for measurement jump is not switching series in 2DMPR (#4779)" (#4898) 2025-03-28 10:17:33 -04:00
arul-trenser
3f06c966eb
fix(measurement): fix for measurement jump is not switching series in 2DMPR (#4779) 2025-03-28 10:14:19 -04:00
ohif-bot
951f95ef0a chore(version): Update package versions [skip ci] 2025-03-27 20:51:50 +00:00
ohif-bot
5737935a96 chore(version): version.json [skip ci] 2025-03-27 20:51:44 +00:00
Bill Wallace
459b0d223a
fix: routerBasename setting (#4891) 2025-03-27 16:47:16 -04:00
ohif-bot
c368d763b0 chore(version): Update package versions [skip ci] 2025-03-27 19:58:04 +00:00
ohif-bot
6b6f49b867 chore(version): version.json [skip ci] 2025-03-27 19:57:58 +00:00
Igor Octaviano
892d03fc3c
fix(seg): multiframe SEG (#4890) 2025-03-27 15:52:22 -04:00
ohif-bot
2acc878f26 chore(version): Update package versions [skip ci] 2025-03-26 18:02:55 +00:00
ohif-bot
1df91fd104 chore(version): version.json [skip ci] 2025-03-26 18:02:48 +00:00
Pedro Köhler
9bde644fce
fix: remove duplicated deleteMeasurements code (#4895) 2025-03-26 13:58:15 -04:00
ohif-bot
7f8fa1e1f4 chore(version): Update package versions [skip ci] 2025-03-26 17:44:41 +00:00
ohif-bot
dce9c6b7c3 chore(version): version.json [skip ci] 2025-03-26 17:44:35 +00:00
Pedro Köhler
467acbd997
fix: datasource connection error style (#4888) 2025-03-26 13:40:09 -04:00
ohif-bot
f90184d9d9 chore(version): Update package versions [skip ci] 2025-03-25 15:04:03 +00:00
ohif-bot
cc9720dca2 chore(version): version.json [skip ci] 2025-03-25 15:03:57 +00:00
Alireza
4dd485bd2d
fix(seg): orthanc seg (#4883) 2025-03-25 10:59:19 -04:00
ohif-bot
209d81f475 chore(version): Update package versions [skip ci] 2025-03-25 13:37:07 +00:00
ohif-bot
5c319ce4f0 chore(version): version.json [skip ci] 2025-03-25 13:37:00 +00:00
Bill Wallace
f6fa509874
fix: Skip showing NaN for average pixel/max value (#4884) 2025-03-25 09:32:36 -04:00
Bill Wallace
8e47112d8e
fix: Delete study measurements instead of all measurements (#4882) 2025-03-25 09:32:29 -04:00
Pedro Köhler
165c9dc710
fix: compare series date time (#4887) 2025-03-25 09:31:49 -04:00
ohif-bot
8faa9bf851 chore(version): Update package versions [skip ci] 2025-03-20 19:18:39 +00:00
ohif-bot
246c10da07 chore(version): version.json [skip ci] 2025-03-20 19:18:32 +00:00
Dan Rukas
782a6a0c88
ui(panels): Tool option components and responsive behavior for ROIThreshold (#4876) 2025-03-20 15:13:59 -04:00
ohif-bot
5293253ecd chore(version): Update package versions [skip ci] 2025-03-20 16:10:51 +00:00
ohif-bot
7f86ca1a2b chore(version): version.json [skip ci] 2025-03-20 16:10:45 +00:00
Pedro Köhler
01c3726ced
feat: add customization to PanelStudyBrowser dbl click callback (#4871) 2025-03-20 12:06:26 -04:00
ohif-bot
f73c485821 chore(version): Update package versions [skip ci] 2025-03-20 13:26:51 +00:00
ohif-bot
30a3965da7 chore(version): version.json [skip ci] 2025-03-20 13:26:45 +00:00
Bill Wallace
df8efba82c
feat: Group findings table values with custom components/grouping functions (#4712) 2025-03-20 09:22:45 -04:00
ohif-bot
0522d58d9b chore(version): Update package versions [skip ci] 2025-03-19 22:29:06 +00:00
ohif-bot
576ad47ebe chore(version): version.json [skip ci] 2025-03-19 22:29:00 +00:00
Alireza
5f112337b6
feat(segmentation): Enhance Segmentation Tools with Preview and Selection Features (#4870) 2025-03-19 18:24:33 -04:00
ohif-bot
20042f9109 chore(version): Update package versions [skip ci] 2025-03-19 15:57:55 +00:00
ohif-bot
d59b9d88fa chore(version): version.json [skip ci] 2025-03-19 15:57:48 +00:00
Sai Shanmukha Narumanchi
7f229d5c23
fix(DicomWebDataSource) : Fix a missing null check in addRetrieveBulkDataNaturalized (#4866) 2025-03-19 11:52:56 -04:00
ohif-bot
eac0308275 chore(version): Update package versions [skip ci] 2025-03-18 21:11:23 +00:00
ohif-bot
c2f9252aef chore(version): version.json [skip ci] 2025-03-18 21:11:16 +00:00
Pedro Köhler
55d6393a3f
feat: overlapping segments (#4849) 2025-03-18 17:07:13 -04:00
ohif-bot
5a6c2aeed9 chore(version): Update package versions [skip ci] 2025-03-18 14:57:07 +00:00
ohif-bot
751919c27b chore(version): version.json [skip ci] 2025-03-18 14:57:00 +00:00
Pedro Köhler
fb93ef9219
fix: add back dicom tag browser SQ items (#4869) 2025-03-18 10:52:19 -04:00
ohif-bot
a0a3a30361 chore(version): Update package versions [skip ci] 2025-03-18 03:01:26 +00:00
ohif-bot
64b196db20 chore(version): version.json [skip ci] 2025-03-18 03:01:20 +00:00
Dan Rukas
c227c5742a
ui(panels): PetSUV updates for ui-next and responsive layout (#4864) 2025-03-17 22:57:19 -04:00
ohif-bot
2c75638d1c chore(version): Update package versions [skip ci] 2025-03-18 02:39:10 +00:00
ohif-bot
bf27da4174 chore(version): version.json [skip ci] 2025-03-18 02:39:04 +00:00
Alireza
ec79b5523e
feat(segmentation): segment statistics, labelmap interpolation and segment bidirectional (#4865) 2025-03-17 22:34:34 -04:00
ohif-bot
694f3e9611 chore(version): Update package versions [skip ci] 2025-03-17 15:51:26 +00:00
ohif-bot
d33b1ade87 chore(version): version.json [skip ci] 2025-03-17 15:51:19 +00:00
Dan Rukas
abab3dc7ad
ui(components): LayoutSelector recreated for ui-next (#4845)
Co-authored-by: sedghi <ar.sedghi@gmail.com>
2025-03-17 11:47:09 -04:00
Alireza
b7fbf04230
fix(metadata): change the default values for cosines (#4863) 2025-03-17 11:44:05 -04:00
ohif-bot
ec71721d49 chore(version): Update package versions [skip ci] 2025-03-17 15:09:28 +00:00
ohif-bot
a265257569 chore(version): version.json [skip ci] 2025-03-17 15:09:22 +00:00
Dan Rukas
951c21fda8
ui(migrate) Migrate local view to new ui-next components (#4850) 2025-03-17 11:05:11 -04:00
Dan Rukas
f916b2f40e
ui(components): Adds InputFilter component to ui-next (#4848) 2025-03-17 11:04:42 -04:00
Pedro H. Köhler
841320adfb
fix: max call stack exceeded for dicom tag browser (#4855) 2025-03-17 11:03:08 -04:00
ohif-bot
10976c2a48 chore(version): Update package versions [skip ci] 2025-03-17 15:01:31 +00:00
ohif-bot
e2ab118217 chore(version): version.json [skip ci] 2025-03-17 15:01:24 +00:00
Alireza
8cd48c7f70
chore: run dependabot (#4862) 2025-03-17 10:56:39 -04:00
ohif-bot
fd2f88920b chore(version): Update package versions [skip ci] 2025-03-17 14:25:30 +00:00
ohif-bot
fdd33aea0f chore(version): version.json [skip ci] 2025-03-17 14:25:23 +00:00
Alireza
ebe6fbaf31
feat: update vtk js (#4858) 2025-03-17 10:21:06 -04:00
ohif-bot
bfa76de93b chore(version): Update package versions [skip ci] 2025-03-11 13:58:54 +00:00
ohif-bot
56c7c27ad9 chore(version): version.json [skip ci] 2025-03-11 13:58:47 +00:00
Ibrahim
3f70617c62
feat(viewport-gap): remove viewport gap and update border behavior (#4835) 2025-03-11 09:54:19 -04:00
Ibrahim
1f634bab45
feat(fonts): bundle fonts in OHIF and dont use google cdn (#4821)
[OHI-1681]
2025-03-11 09:50:46 -04:00
ohif-bot
f6ad3446ad chore(version): Update package versions [skip ci] 2025-03-11 13:11:42 +00:00
ohif-bot
a6059363b1 chore(version): version.json [skip ci] 2025-03-11 13:11:35 +00:00
dependabot[bot]
834be4aaf1
chore(deps): bump prismjs from 1.29.0 to 1.30.0 in /platform/docs (#4838)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-11 09:07:13 -04:00
ohif-bot
f15022c6e9 chore(version): Update package versions [skip ci] 2025-03-10 19:38:15 +00:00
ohif-bot
a5fb53fbcf chore(version): version.json [skip ci] 2025-03-10 19:38:09 +00:00
dependabot[bot]
d9349ead6f
chore(deps): bump axios from 0.28.1 to 1.8.2 (#4833)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: sedghi <ar.sedghi@gmail.com>
2025-03-10 15:34:10 -04:00
ohif-bot
9d7c2abdef chore(version): Update package versions [skip ci] 2025-03-07 19:19:37 +00:00
ohif-bot
18ef2562a1 chore(version): version.json [skip ci] 2025-03-07 19:19:30 +00:00
Celian-abd
17d2889dc5
fix(tmtv tools): add CircleROIStartEndThreshold to supported tools in TMTV extension (#4828) 2025-03-07 14:15:00 -05:00
ohif-bot
2109b2c1e6 chore(version): Update package versions [skip ci] 2025-03-07 03:23:40 +00:00
ohif-bot
19fb355c50 chore(version): version.json [skip ci] 2025-03-07 03:23:34 +00:00
Alireza
cc5cdfb081
feat(toolbox): Refactor Toolbar and Toolbox to enable sections (#4825) 2025-03-06 22:19:47 -05:00
ohif-bot
86c12246ac chore(version): Update package versions [skip ci] 2025-03-06 22:13:48 +00:00
ohif-bot
022313302e chore(version): version.json [skip ci] 2025-03-06 22:13:42 +00:00
Pedro H. Köhler
5a7f7841b2
fix: dicom tag browser row height on toggle (#4832) 2025-03-06 17:09:11 -05:00
ohif-bot
9b6af66859 chore(version): Update package versions [skip ci] 2025-02-28 20:22:03 +00:00
ohif-bot
cdfe5c7bef chore(version): version.json [skip ci] 2025-02-28 20:21:57 +00:00
Dan Rukas
a3b51aa8db
ui(components): New Dialog and Modal components for ui-next (#4772)
Co-authored-by: sedghi <ar.sedghi@gmail.com>
2025-02-28 15:17:55 -05:00
ohif-bot
62b4fa3e89 chore(version): Update package versions [skip ci] 2025-02-28 19:21:07 +00:00
ohif-bot
c757d69671 chore(version): version.json [skip ci] 2025-02-28 19:20:58 +00:00
Bill Wallace
24567c4e92
fix: Cornerstone3D 3.0 (#4816)
Co-authored-by: sedghi <ar.sedghi@gmail.com>
2025-02-28 14:16:39 -05:00
ohif-bot
62abb3ac47 chore(version): Update package versions [skip ci] 2025-02-28 18:56:06 +00:00
ohif-bot
f7a0763000 chore(version): version.json [skip ci] 2025-02-28 18:55:59 +00:00
Bill Wallace
d25809eed0
fix: Performance of panel study browser (#4819) 2025-02-28 13:51:43 -05:00
ohif-bot
6b0bb9402f chore(version): Update package versions [skip ci] 2025-02-28 17:30:34 +00:00
ohif-bot
9cbf82167e chore(version): version.json [skip ci] 2025-02-28 17:30:27 +00:00
Sofien-Sellami
7f0cc0f60e
feat: separate checks for addWindowLevelActionMenu and addSegmentationOverlay (#4813) 2025-02-28 12:25:52 -05:00
ohif-bot
7d67834159 chore(version): Update package versions [skip ci] 2025-02-26 17:19:13 +00:00
ohif-bot
51f9407d93 chore(version): version.json [skip ci] 2025-02-26 17:19:07 +00:00
Sofien-Sellami
fdb073c216
fix: broken activateViewportBeforeInteraction behavior (#4810) 2025-02-26 12:14:56 -05:00
ohif-bot
d319d20b0d chore(version): Update package versions [skip ci] 2025-02-26 16:28:51 +00:00
ohif-bot
8a977bb70c chore(version): version.json [skip ci] 2025-02-26 16:28:42 +00:00
Alireza
9233143b9d
fix(sr): sr hydration and load was not working, Screenshot Comparison, and Testing (#4814) 2025-02-26 11:23:40 -05:00
ohif-bot
1f5c60bbda chore(version): Update package versions [skip ci] 2025-02-25 22:26:27 +00:00
ohif-bot
ca22bac851 chore(version): version.json [skip ci] 2025-02-25 22:26:21 +00:00
Alireza
32fc6f0d4b
chore: upgrade cornerstone3D version (#4809) 2025-02-25 17:21:57 -05:00
ohif-bot
e2491daff7 chore(version): Update package versions [skip ci] 2025-02-25 21:30:04 +00:00
ohif-bot
7dd0260f86 chore(version): version.json [skip ci] 2025-02-25 21:29:58 +00:00
Yiannis Theocharakis
4b63d48518
feat(Segments Looping) : Fixed looping through Segments of SEG (#4793) 2025-02-25 16:25:52 -05:00
ohif-bot
4ecffe89cb chore(version): Update package versions [skip ci] 2025-02-25 21:24:41 +00:00
ohif-bot
9fb3653281 chore(version): version.json [skip ci] 2025-02-25 21:24:35 +00:00
Rafael Osipov
06660be7c4
docs: Fix broken link to viewer internationalization docs (#4808) 2025-02-25 16:20:19 -05:00
ohif-bot
5d5eafb0f5 chore(version): Update package versions [skip ci] 2025-02-25 18:36:49 +00:00
ohif-bot
0abb62167a chore(version): version.json [skip ci] 2025-02-25 18:36:43 +00:00
Alireza
3e6913b097
feat(hotkeys): Migrate hotkeys to customization service and fix issues with overrides (#4777) 2025-02-25 13:32:30 -05:00
ohif-bot
4559d39a91 chore(version): Update package versions [skip ci] 2025-02-25 16:55:42 +00:00
ohif-bot
b7ddbccdff chore(version): version.json [skip ci] 2025-02-25 16:55:37 +00:00
Bill Wallace
e480e841bb
fix: Changes to address hang/crash on jump to instance (#4679) 2025-02-25 11:51:44 -05:00
Ibrahim
afd528b8d7
fix(rt): jump to segment discards the configured width (#4799) 2025-02-25 11:49:16 -05:00
ohif-bot
76da2d86a9 chore(version): Update package versions [skip ci] 2025-02-25 14:20:31 +00:00
ohif-bot
5527c0e8ea chore(version): version.json [skip ci] 2025-02-25 14:20:25 +00:00
Bill Wallace
bda98b0bee
fix: Delay for all series thumbnails on fetching thumbnail (#4802) 2025-02-25 09:15:45 -05:00
ohif-bot
74d96d378d chore(version): Update package versions [skip ci] 2025-02-23 20:49:40 +00:00
ohif-bot
94496f72b9 chore(version): version.json [skip ci] 2025-02-23 20:49:34 +00:00
Dan Rukas
338e386948
ui(icons): Added New Segmentation Tool Art (#4797) 2025-02-23 15:44:53 -05:00
ohif-bot
0531bee83b chore(version): Update package versions [skip ci] 2025-02-20 14:26:22 +00:00
ohif-bot
6411488cd1 chore(version): version.json [skip ci] 2025-02-20 14:26:16 +00:00
Pedro H. Köhler
55f0b54db1
fix: combine frame instance (#4792) 2025-02-20 09:21:44 -05:00
ohif-bot
2e70f0ffa1 chore(version): Update package versions [skip ci] 2025-02-20 14:01:47 +00:00
ohif-bot
0931356f68 chore(version): version.json [skip ci] 2025-02-20 14:01:41 +00:00
Pedro H. Köhler
b7cd0c6027
fix: icon is not defined (#4794) 2025-02-20 08:57:29 -05:00
ohif-bot
8d83c117cf chore(version): Update package versions [skip ci] 2025-02-19 14:21:08 +00:00
ohif-bot
bd93a6f428 chore(version): version.json [skip ci] 2025-02-19 14:21:01 +00:00
Ceciliadrc
125f11fc73
fix(button): fix for className (#4604) 2025-02-19 09:16:22 -05:00
ohif-bot
ce3bc8962d chore(version): Update package versions [skip ci] 2025-02-18 23:24:46 +00:00
ohif-bot
0d8820d941 chore(version): version.json [skip ci] 2025-02-18 23:24:39 +00:00
Yiannis Theocharakis
c61dbba8d0
fix(Segments Looping) : Fixed looping through Segments of RTSTRUCT using Left/Right viewport buttons (#4783) 2025-02-18 18:20:26 -05:00
Bill Wallace
2410c6a509
fix: cache thumbnail in display set (#4782) 2025-02-18 18:19:09 -05:00
ohif-bot
d26c9551b6 chore(version): Update package versions [skip ci] 2025-02-18 16:41:10 +00:00
ohif-bot
b6afba12a5 chore(version): version.json [skip ci] 2025-02-18 16:41:04 +00:00
Pedro H. Köhler
4e16099ad3
fix: lodash dependencies (#4791) 2025-02-18 11:36:26 -05:00
ohif-bot
887a892a5b chore(version): Update package versions [skip ci] 2025-02-18 15:34:40 +00:00
ohif-bot
db4d94c3fe chore(version): version.json [skip ci] 2025-02-18 15:34:31 +00:00
Pedro H. Köhler
0b5836ca1a
feat: improve dicom tag browser with nested rows (#4451) 2025-02-18 10:29:53 -05:00
ohif-bot
8b969eb1e9 chore(version): Update package versions [skip ci] 2025-02-18 14:12:35 +00:00
ohif-bot
ac30be6038 chore(version): version.json [skip ci] 2025-02-18 14:12:28 +00:00
Alireza
d8a6e79df0
fix: depandabot (#4786) 2025-02-18 09:08:10 -05:00
Pedro H. Köhler
5712e91ca1
fix: right panel for the create mode cli command (#4788) 2025-02-18 09:07:17 -05:00
Pedro H. Köhler
a3b1251386
docs: fix yarn version (#4790) 2025-02-18 09:04:35 -05:00
ohif-bot
2fbaa11cf1 chore(version): Update package versions [skip ci] 2025-02-13 17:31:17 +00:00
ohif-bot
8fe7b78e54 chore(version): version.json [skip ci] 2025-02-13 17:31:11 +00:00
Yiannis Theocharakis
d9a3ba7990
fix(Frame View) : Fixed synchronization for Frame View Hanging Protocol (#4780) 2025-02-13 12:27:01 -05:00
ohif-bot
2ca9f2b0cc chore(version): Update package versions [skip ci] 2025-02-11 17:44:43 +00:00
ohif-bot
559f248d1f chore(version): version.json [skip ci] 2025-02-11 17:44:37 +00:00
Pedro H. Köhler
084a10f783
feat: add viewport overlays to microscopy mode (#4776) 2025-02-11 12:39:45 -05:00
ohif-bot
5043ea3260 chore(version): Update package versions [skip ci] 2025-02-04 23:37:42 +00:00
ohif-bot
e0ec1011cf chore(version): version.json [skip ci] 2025-02-04 23:37:36 +00:00
devin-ai-integration[bot]
bbf1a19676
fix: add commandsManager to MoreDropdownMenu onClick props (#4765)
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Alireza Sedghi <ar.sedghi@gmail.com>
2025-02-04 18:33:45 -05:00
ohif-bot
9a3d832cc2 chore(version): Update package versions [skip ci] 2025-02-04 17:29:26 +00:00
ohif-bot
e373e22481 chore(version): version.json [skip ci] 2025-02-04 17:29:19 +00:00
Alireza
149d6d049c
fix(core): Address 3D reconstruction and Android compatibility issues and clean up 4D data mode (#4762) 2025-02-04 12:25:10 -05:00
ohif-bot
4d06a7d286 chore(version): Update package versions [skip ci] 2025-02-04 14:10:16 +00:00
ohif-bot
a7e4204cea chore(version): version.json [skip ci] 2025-02-04 14:10:10 +00:00
Joost van Griethuysen
8996df80e4
fix: changing colormap for second volume in fusion viewport (#4746) 2025-02-04 09:05:55 -05:00
ohif-bot
d5dbe20256 chore(version): Update package versions [skip ci] 2025-02-04 13:55:40 +00:00
ohif-bot
105fd7a468 chore(version): version.json [skip ci] 2025-02-04 13:55:34 +00:00
Abhijith Sb
2c183aa4a7
feat(ui): Add support for Custom Modal component in Modal Service (#4752) 2025-02-04 08:51:23 -05:00
ohif-bot
8788dae6a4 chore(version): Update package versions [skip ci] 2025-02-04 13:50:59 +00:00
ohif-bot
6937129991 chore(version): version.json [skip ci] 2025-02-04 13:50:54 +00:00
nithin-trenser
8acbd760d8
feat(ui): customization option for viewport notification (#4638) 2025-02-04 08:46:39 -05:00
ohif-bot
c65e7f57cc chore(version): Update package versions [skip ci] 2025-02-04 13:36:09 +00:00
ohif-bot
5e09b405f4 chore(version): version.json [skip ci] 2025-02-04 13:36:04 +00:00
Joe Boccanfuso
12d3db2dbc
fix(context-menu): Fixing regression introduced by PR #4727 (#4760) 2025-02-04 08:31:40 -05:00
ohif-bot
ae9a238289 chore(version): Update package versions [skip ci] 2025-02-03 15:35:58 +00:00
ohif-bot
691accacd9 chore(version): version.json [skip ci] 2025-02-03 15:35:53 +00:00
arul-trenser
e035ef1dcc
fix(measurement label auto-completion): Customization of measurement label auto-completion fails for measurements following arrow annotations. (#4739) 2025-02-03 10:31:41 -05:00
ohif-bot
43aa20c372 chore(version): Update package versions [skip ci] 2025-02-03 14:33:26 +00:00
ohif-bot
860f76586a chore(version): version.json [skip ci] 2025-02-03 14:33:20 +00:00
Ibrahim
9b8e5cfd1a
fix(store-segmentation): storing segmentations was hitting the wrong command resulting in an undefined datasource (#4755)
[OHI-1445]
2025-02-03 09:28:58 -05:00
ohif-bot
613401e043 chore(version): Update package versions [skip ci] 2025-02-03 14:22:28 +00:00
ohif-bot
47b9a06f74 chore(version): version.json [skip ci] 2025-02-03 14:22:22 +00:00
Abhijith Sb
f15eb44b4c
feat: Add customization support for more UI components (#4634)
Co-authored-by: ashikcn <ashik@L1140.trenser.com>
Co-authored-by: Devu Jayalekshmi <devu.jayalekshmi@trenser.com>
Co-authored-by: Arul Mozhi <arul.mozhi@trenser.com>
2025-02-03 09:18:00 -05:00
ohif-bot
8f79ebafd9 chore(version): Update package versions [skip ci] 2025-01-31 15:12:46 +00:00
ohif-bot
a3c7c2c3da chore(version): version.json [skip ci] 2025-01-31 15:12:40 +00:00
Celian-abd
32017d15a4
fix: Remove non-functional Tailwind class for SegmentationPanel (#4745) 2025-01-31 10:07:55 -05:00
ohif-bot
e3967e62f2 chore(version): Update package versions [skip ci] 2025-01-31 14:47:57 +00:00
ohif-bot
09f9024728 chore(version): version.json [skip ci] 2025-01-31 14:47:51 +00:00
Alireza
0cb6106d0f
fix: publish dependency (#4753) 2025-01-31 09:43:35 -05:00
ohif-bot
4dc26ae603 chore(version): Update package versions [skip ci] 2025-01-31 13:58:58 +00:00
ohif-bot
9850f92b8a chore(version): version.json [skip ci] 2025-01-31 13:58:52 +00:00
Gas Giant
f10683c667
fix: typo in pet_series_module (#4748)
Co-authored-by: scouser <sharukh@Sharukhs-MacBook-Pro.local>
2025-01-31 08:54:45 -05:00
ohif-bot
2bfc790870 chore(version): Update package versions [skip ci] 2025-01-29 18:41:36 +00:00
ohif-bot
3f08a76aac chore(version): version.json [skip ci] 2025-01-29 18:41:29 +00:00
Dan Rukas
a8d84443a9
ui(components): migrates to new toolbar ui components and Numeric for Input InputRange and InputDoubleRange (#4728)
Co-authored-by: sedghi <ar.sedghi@gmail.com>
2025-01-29 13:36:52 -05:00
ohif-bot
ac5ae4a29e chore(version): Update package versions [skip ci] 2025-01-29 14:19:36 +00:00
ohif-bot
6d9c701fa9 chore(version): version.json [skip ci] 2025-01-29 14:19:30 +00:00
Jaseel-trenser
054b262e9c
feat(customization): enable custom onDropHandler for viewportGrid (#4641) 2025-01-29 09:14:50 -05:00
ohif-bot
3dac0f9e73 chore(version): Update package versions [skip ci] 2025-01-28 20:04:13 +00:00
ohif-bot
d62c32c898 chore(version): version.json [skip ci] 2025-01-28 20:04:07 +00:00
Alireza
d554f02f7c
fix(dependencies): Update dcmjs library and improve documentation links (#4741) 2025-01-28 14:59:59 -05:00
ohif-bot
ff6dd3a152 chore(version): Update package versions [skip ci] 2025-01-28 16:38:07 +00:00
ohif-bot
a22818c1f4 chore(version): version.json [skip ci] 2025-01-28 16:38:01 +00:00
Joe Boccanfuso
6abb095b8a
feat(side-panels): Added resize handle interactive feedback for side panels (#4734) 2025-01-28 11:33:53 -05:00
ohif-bot
fe658c6392 chore(version): Update package versions [skip ci] 2025-01-28 13:59:39 +00:00
ohif-bot
70c94e8d5a chore(version): version.json [skip ci] 2025-01-28 13:59:33 +00:00
Devu-trenser
5addf51c45
feat(windowLevelActionMenu) customization support for windowLevelActionMenu (#4725) 2025-01-28 08:54:58 -05:00
ashik-trenser
8e3e2085d4
fix: for initialImageIndex mismatch issue for loading SR after disabling prompts (#4732)
Co-authored-by: ashikcn <ashik@L1140.trenser.com>
2025-01-28 08:53:42 -05:00
ohif-bot
078a72996f chore(version): Update package versions [skip ci] 2025-01-27 16:59:04 +00:00
ohif-bot
dc14a48fd9 chore(version): version.json [skip ci] 2025-01-27 16:58:57 +00:00
arul-trenser
61699d00b6
fix(context menu): Context menus for edge-proximate measurements are partially obscured. (#4727) 2025-01-27 11:54:29 -05:00
ohif-bot
eb854ac2cb chore(version): Update package versions [skip ci] 2025-01-27 16:24:18 +00:00
ohif-bot
6c42f269a7 chore(version): version.json [skip ci] 2025-01-27 16:24:12 +00:00
Ibrahim
ac6e674b4d
feat(static-wado): add support for case-insensitive searching (#4603)
[OHI-1357]
2025-01-27 11:20:00 -05:00
ohif-bot
316cf0a7bd chore(version): Update package versions [skip ci] 2025-01-27 14:27:48 +00:00
ohif-bot
c011236060 chore(version): version.json [skip ci] 2025-01-27 14:27:43 +00:00
dependabot[bot]
2ed7a1adfa
chore(deps): bump store2 from 2.14.3 to 2.14.4 (#4737)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-27 09:23:38 -05:00
ohif-bot
492150478b chore(version): Update package versions [skip ci] 2025-01-24 15:27:16 +00:00
ohif-bot
cb03077d37 chore(version): version.json [skip ci] 2025-01-24 15:27:10 +00:00
Alireza
28fb921089
fix(docs): image in customization (#4735) 2025-01-24 10:22:29 -05:00
ohif-bot
bc175d68b6 chore(version): Update package versions [skip ci] 2025-01-24 13:46:27 +00:00
ohif-bot
884020f143 chore(version): version.json [skip ci] 2025-01-24 13:46:21 +00:00
Gas Giant
d6f0092a32
feat: delete active annotation using backspace/delete key (#4722)
Co-authored-by: scouser <sharukh@Sharukhs-MacBook-Pro.local>
2025-01-24 08:42:00 -05:00
ohif-bot
01fa5d83a6 chore(version): Update package versions [skip ci] 2025-01-23 19:28:43 +00:00
ohif-bot
625919d4e4 chore(version): version.json [skip ci] 2025-01-23 19:28:36 +00:00
Alireza
55ad8efbab
feat(customization): new customization service api (#4688) 2025-01-23 14:24:13 -05:00
ohif-bot
fab52808cb chore(version): Update package versions [skip ci] 2025-01-23 19:18:02 +00:00
ohif-bot
f5ad0de2d2 chore(version): version.json [skip ci] 2025-01-23 19:17:56 +00:00
Ibrahim
d9abc3da8d
feat(panels): responsive thumbnails based on panel size (#4723) 2025-01-23 14:13:44 -05:00
ohif-bot
9d07705a1f chore(version): Update package versions [skip ci] 2025-01-22 16:40:54 +00:00
ohif-bot
0966f62310 chore(version): version.json [skip ci] 2025-01-22 16:40:48 +00:00
Alireza
f00d18292f
fix(seg): sphere scissor on stack and cpu rendering reset properties was broken (#4721) 2025-01-22 11:36:45 -05:00
ohif-bot
3628ad84c8 chore(version): Update package versions [skip ci] 2025-01-21 16:25:19 +00:00
ohif-bot
b21287e908 chore(version): version.json [skip ci] 2025-01-21 16:25:13 +00:00
Joe Boccanfuso
d90a4cfb16
feat(resizable-side-panels): Make the left and right side panels (optionally) resizable. (#4672) 2025-01-21 11:20:34 -05:00
ohif-bot
a518854a4c chore(version): Update package versions [skip ci] 2025-01-21 14:38:46 +00:00
ohif-bot
28f86f3cd6 chore(version): version.json [skip ci] 2025-01-21 14:38:40 +00:00
Alireza
cf97fa9b7b
fix(ui): Update dependencies and add missing icons (#4699) 2025-01-21 09:34:19 -05:00
ohif-bot
ad7ade28ea chore(version): Update package versions [skip ci] 2025-01-21 14:12:03 +00:00
ohif-bot
9aed7b8486 chore(version): version.json [skip ci] 2025-01-21 14:11:57 +00:00
Jaseel-trenser
8aedb2ec54
fix: Inconsistent Handling of Patient Name Tag (#4703) 2025-01-21 09:07:30 -05:00
ohif-bot
cbe926f52b chore(version): Update package versions [skip ci] 2025-01-20 14:17:53 +00:00
ohif-bot
855648f41f chore(version): version.json [skip ci] 2025-01-20 14:17:47 +00:00
Bez
bf587070cc
fix(rotation): support cycling rotateViewportCCW (#4533) 2025-01-20 09:13:43 -05:00
ohif-bot
953f36ab4c chore(version): Update package versions [skip ci] 2025-01-20 14:11:21 +00:00
ohif-bot
0911e3c0d1 chore(version): version.json [skip ci] 2025-01-20 14:11:15 +00:00
Bill Wallace
464148ece6
fix(hp): Display set should allow remembered updates (#4707) 2025-01-20 09:06:28 -05:00
ohif-bot
544dc543d9 chore(version): Update package versions [skip ci] 2025-01-17 21:48:05 +00:00
ohif-bot
f5dcf25d98 chore(version): version.json [skip ci] 2025-01-17 21:47:59 +00:00
Bill Wallace
7734296d1d
docs: Documentation on how to set default configuration to search for today (#4708) 2025-01-17 16:43:51 -05:00
ohif-bot
9e047784d1 chore(version): Update package versions [skip ci] 2025-01-16 16:47:32 +00:00
ohif-bot
df96a4992c chore(version): version.json [skip ci] 2025-01-16 16:47:26 +00:00
Pedro H. Köhler
19931614dc
fix: context menu icon (#4696) 2025-01-16 11:42:58 -05:00
ohif-bot
ef477c29c5 chore(version): Update package versions [skip ci] 2025-01-16 03:33:26 +00:00
ohif-bot
6c8ebc1d5a chore(version): version.json [skip ci] 2025-01-16 03:33:19 +00:00
Alireza
ec4b5a6876
fix(multiframe): handling proxies properly (#4693)
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
Co-authored-by: Chao Sui <chao.sui@curvebeamai.com>
2025-01-15 22:29:06 -05:00
ohif-bot
9f8df95f3e chore(version): Update package versions [skip ci] 2025-01-15 20:21:31 +00:00
ohif-bot
c718b20659 chore(version): version.json [skip ci] 2025-01-15 20:21:25 +00:00
Bill Wallace
cded082617
fix: Having sop instance in a per-frame or shared attribute breaks load (#4560)
Co-authored-by: sedghi <ar.sedghi@gmail.com>
2025-01-15 15:16:50 -05:00
ohif-bot
27c040fdda chore(version): Update package versions [skip ci] 2025-01-14 14:07:59 +00:00
ohif-bot
e923bf2bc5 chore(version): version.json [skip ci] 2025-01-14 14:07:53 +00:00
Pedro H. Köhler
2d611d06ed
fix: cs dicom sr commands module (#4683) 2025-01-14 09:03:04 -05:00
Alireza
c901a847af
fix: bugs after multimonitor (#4680) 2025-01-13 18:32:54 -05:00
ohif-bot
7662157cbf chore(version): Update package versions [skip ci] 2025-01-13 15:54:04 +00:00
ohif-bot
161c84d875 chore(version): version.json [skip ci] 2025-01-13 15:53:58 +00:00
Bill Wallace
07c628e689
feat(multimonitor): Add simple multi-monitor support to open another study(#4178) 2025-01-13 10:49:08 -05:00
ohif-bot
a4a6de07f4 chore(version): Update package versions [skip ci] 2025-01-13 14:40:08 +00:00
ohif-bot
daf18f3e6b chore(version): version.json [skip ci] 2025-01-13 14:40:01 +00:00
Devu-trenser
9832dbe653
fix(toolbarService): All header tools are enabled in volume3D viewport (#4677) 2025-01-13 09:35:44 -05:00
ohif-bot
f4df631a4a chore(version): Update package versions [skip ci] 2025-01-13 14:04:38 +00:00
ohif-bot
bdfaa35f7f chore(version): version.json [skip ci] 2025-01-13 14:04:31 +00:00
Joeycho
9b04020a87
docs: migration docs typo (3.8 -> 3.9, useViewportGridStore()) (#4675) 2025-01-13 09:00:13 -05:00
ohif-bot
7a13c28eb3 chore(version): Update package versions [skip ci] 2025-01-10 20:09:59 +00:00
ohif-bot
b9fb0ce96f chore(version): version.json [skip ci] 2025-01-10 20:09:53 +00:00
Alireza
d4a4267429
feat(dev): move to rsbuild for dev - faster (#4674) 2025-01-10 15:05:35 -05:00
ohif-bot
847f1da8e0 chore(version): Update package versions [skip ci] 2025-01-10 17:05:53 +00:00
ohif-bot
71ccbe87c1 chore(version): version.json [skip ci] 2025-01-10 17:05:47 +00:00
Ibrahim
a2d34c97ed
fix(docker): run compression regardless of APP_CONFIG being present ( in cases such as volume mount) (#4673) 2025-01-10 12:01:15 -05:00
ohif-bot
ee76912fed chore(version): Update package versions [skip ci] 2025-01-10 15:11:20 +00:00
ohif-bot
e94e8439ad chore(version): version.json [skip ci] 2025-01-10 15:11:14 +00:00
Ibrahim
01924b8bf2
fix(icons): icons missing for volume presets and others (#4671) 2025-01-10 10:06:34 -05:00
ohif-bot
7d22480036 chore(version): Update package versions [skip ci] 2025-01-10 04:02:04 +00:00
ohif-bot
4e70ee7894 chore(version): version.json [skip ci] 2025-01-10 04:01:57 +00:00
Joeycho
64a72774a8
chore: delete unused and duplicate function, it exists under /utils (#4657) 2025-01-09 22:57:32 -05:00
ohif-bot
1b56b48d7b chore(version): Update package versions [skip ci] 2025-01-10 03:11:43 +00:00
ohif-bot
41e870b7db chore(version): version.json [skip ci] 2025-01-10 03:11:37 +00:00
Bill Wallace
ebbc37d291
fix: orthanc datasource dev (#4663) 2025-01-09 22:07:30 -05:00
ohif-bot
29b9dc58ba chore(version): Update package versions [skip ci] 2025-01-10 03:06:19 +00:00
ohif-bot
409e06d0c6 chore(version): version.json [skip ci] 2025-01-10 03:06:13 +00:00
Bill Wallace
82440e88d5
feat: Start using group filtering to define measurements table layout (#4501) 2025-01-09 22:01:42 -05:00
ohif-bot
bc73de9710 chore(version): Update package versions [skip ci] 2025-01-09 16:22:12 +00:00
ohif-bot
ba8f8ba2d6 chore(version): version.json [skip ci] 2025-01-09 16:22:04 +00:00
Salim Kanoun
8e2c607904
fix: Execute HP onProtocolEnter callback after HPservice.run( (#4589) 2025-01-09 11:15:57 -05:00
ohif-bot
98f4ac2e75 chore(version): Update package versions [skip ci] 2025-01-09 15:56:12 +00:00
ohif-bot
192d8e69a9 chore(version): version.json [skip ci] 2025-01-09 15:56:05 +00:00
Salim Kanoun
aef68d18b8
fix: Make StudyInstanceUID optional to retrieve a Series from DicomMetadataStore (#4644) 2025-01-09 10:51:09 -05:00
ohif-bot
2dd9b893ad chore(version): Update package versions [skip ci] 2025-01-09 14:32:47 +00:00
ohif-bot
2ebd03de07 chore(version): version.json [skip ci] 2025-01-09 14:32:41 +00:00
Bill Wallace
e0088ec918
fix: Inconsistencies and update the style setting on load for embedded styles from codingValues (#4599) 2025-01-09 09:28:02 -05:00
ohif-bot
3c848c6d34 chore(version): Update package versions [skip ci] 2025-01-08 20:35:07 +00:00
ohif-bot
c931b63d5e chore(version): version.json [skip ci] 2025-01-08 20:35:01 +00:00
Alireza
38edde5e37
fix(circleci): Update workflow dependencies for Docker publishing stages (#4662) 2025-01-08 15:30:24 -05:00
Alireza
66eebbed0f
fix(circleci): Update workflow dependencies for Docker publishing stages (#4661) 2025-01-08 15:20:16 -05:00
ohif-bot
8ecbca700c chore(version): Update package versions [skip ci] 2025-01-08 20:02:34 +00:00
ohif-bot
1223dd00e1 chore(version): version.json [skip ci] 2025-01-08 20:02:28 +00:00
Alireza
3c6a5ef69e
fix(circleci): Update workflow dependencies for Docker publishing stages (#4660) 2025-01-08 14:57:50 -05:00
ohif-bot
dd5251ac95 chore(version): Update package versions [skip ci] 2025-01-08 19:43:13 +00:00
ohif-bot
71c0c18a8a chore(version): version.json [skip ci] 2025-01-08 19:43:07 +00:00
Alireza
5f6f528fbf
fix(Dockerfile): Clear bun package manager cache before installation (#4659) 2025-01-08 14:38:39 -05:00
ohif-bot
60547b507f chore(version): Update package versions [skip ci] 2025-01-08 19:28:18 +00:00
ohif-bot
f8b7687f94 chore(version): version.json [skip ci] 2025-01-08 19:28:12 +00:00
Dan Rukas
230ae9758b
ui(components): Viewport components added to ui-next (#4649)
Co-authored-by: sedghi <ar.sedghi@gmail.com>
2025-01-08 14:23:34 -05:00
ohif-bot
47de38f3ff chore(version): Update package versions [skip ci] 2025-01-08 19:18:23 +00:00
ohif-bot
5b454472e4 chore(version): version.json [skip ci] 2025-01-08 19:18:16 +00:00
devin-ai-integration[bot]
2f5076ece8
fix: Convert Rows and Columns to numbers before comparison (#4654) (#4656)
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2025-01-08 14:13:28 -05:00
ohif-bot
401d5dcedd chore(version): Update package versions [skip ci] 2025-01-08 18:15:53 +00:00
ohif-bot
464976f035 chore(version): version.json [skip ci] 2025-01-08 18:15:47 +00:00
Dan Rukas
b54f2075ec
ui(component): Tooltip component ui-next (#4635)
Co-authored-by: sedghi <ar.sedghi@gmail.com>
2025-01-08 13:10:57 -05:00
ohif-bot
03ad79eaed chore(version): Update package versions [skip ci] 2025-01-08 14:46:22 +00:00
ohif-bot
e993b7f9e1 chore(version): version.json [skip ci] 2025-01-08 14:46:15 +00:00
Alireza
8e12021939
fix(docker): make multiarch work (#4655) 2025-01-08 09:41:47 -05:00
ohif-bot
8ad5d559bb chore(version): Update package versions [skip ci] 2025-01-08 14:05:29 +00:00
ohif-bot
20a4daa54e chore(version): version.json [skip ci] 2025-01-08 14:05:22 +00:00
Alireza
836e67a6ab
fix(docker): publish manifest for multiarch and update cs3d (#4650) 2025-01-08 09:00:22 -05:00
ohif-bot
05e3f221a6 chore(version): Update package versions [skip ci] 2025-01-07 13:50:25 +00:00
ohif-bot
b44373915a chore(version): version.json [skip ci] 2025-01-07 13:50:19 +00:00
Joe Boccanfuso
28cf3a17fa
fix(toolbars): Fix error when filtering out duplicate buttons for a button section. (#4618) 2025-01-07 08:45:43 -05:00
ohif-bot
754d6b269d chore(version): Update package versions [skip ci] 2025-01-06 15:00:56 +00:00
ohif-bot
c2c2911c6e chore(version): version.json [skip ci] 2025-01-06 15:00:50 +00:00
devin-ai-integration[bot]
4a8e8cacf2
fix: year 2025 missing in date picker (#4647)
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2025-01-06 09:56:29 -05:00
ohif-bot
a863808947 chore(version): Update package versions [skip ci] 2025-01-03 16:02:36 +00:00
ohif-bot
1935bf8c3c chore(version): version.json [skip ci] 2025-01-03 16:02:29 +00:00
nithin-trenser
55fe185c72
feat: Implemented CSV support for Arrow annotation. (#4623)
Co-authored-by: Ibrahim <93064150+IbrahimCSAE@users.noreply.github.com>
2025-01-03 10:57:25 -05:00
arul-trenser
e11ceb9d20
fix(context menu): restrict the context menu accessibility for locked and hidden annotations (#4625)
Co-authored-by: Ibrahim <93064150+IbrahimCSAE@users.noreply.github.com>
2025-01-03 10:57:17 -05:00
Jaseel-trenser
6b851dfc12
fix(context menu): Implemented closing of context menu on outside click (#4627)
Co-authored-by: Ibrahim <93064150+IbrahimCSAE@users.noreply.github.com>
2025-01-03 10:57:05 -05:00
ohif-bot
b7fac6df3e chore(version): Update package versions [skip ci] 2025-01-03 15:48:40 +00:00
ohif-bot
63a2d3850a chore(version): version.json [skip ci] 2025-01-03 15:48:33 +00:00
Abhijith Sb
5322064e9e
fix(3D rendering): disabled light sliders when shade is off (#4631) 2025-01-03 10:43:49 -05:00
nithin-trenser
860679126a
feat/Added translation option for text 'segment' (#4624) 2025-01-03 10:38:34 -05:00
ohif-bot
4ef67c0cf7 chore(version): Update package versions [skip ci] 2025-01-02 19:51:17 +00:00
ohif-bot
286ae4b1f5 chore(version): version.json [skip ci] 2025-01-02 19:51:11 +00:00
Bill Wallace
7e43b2f768
fix: Docker build time was very slow on a tiny change (#4559)
Co-authored-by: sedghi <ar.sedghi@gmail.com>
2025-01-02 14:46:53 -05:00
ohif-bot
ae48f50037 chore(version): Update package versions [skip ci] 2024-12-20 18:25:50 +00:00
ohif-bot
d6a02a3d4b chore(version): version.json [skip ci] 2024-12-20 18:25:45 +00:00
Ibrahim
1992002d2d
fix(tools): enable additional tools in volume viewport (#4620) 2024-12-20 13:19:59 -05:00
ohif-bot
ede5724069 chore(version): Update package versions [skip ci] 2024-12-20 15:28:24 +00:00
ohif-bot
1593d9644a chore(version): version.json [skip ci] 2024-12-20 15:28:18 +00:00
Ibrahim
8d0ed80e0c
fix(datasource): attach auth headers for delete requests in the dicomweb datasource (#4619) 2024-12-20 10:23:33 -05:00
ohif-bot
a3d1844c2a chore(version): Update package versions [skip ci] 2024-12-20 13:17:50 +00:00
ohif-bot
8313952a8e chore(version): version.json [skip ci] 2024-12-20 13:17:44 +00:00
Ibrahim
faf5515e4b
fix(segmentation): black preview when loading a seg, and crash on opening panel (#4602) 2024-12-20 08:12:58 -05:00
ohif-bot
921e8f93b7 chore(version): Update package versions [skip ci] 2024-12-18 20:10:41 +00:00
ohif-bot
422ff828cd chore(version): version.json [skip ci] 2024-12-18 20:10:35 +00:00
Joe Boccanfuso
2df8e1d5cd
fix(SR): Bring back the onModeEnter for the cornerstone-dicom-sr extension that was accidentally removed by PR #4586 (#4616) 2024-12-18 15:06:06 -05:00
ohif-bot
11050441e5 chore(version): Update package versions [skip ci] 2024-12-18 18:29:14 +00:00
ohif-bot
8bd659ba10 chore(version): version.json [skip ci] 2024-12-18 18:29:07 +00:00
Alireza
93d7076901
fix(icons): Add Clipboard icon and update MetadataProvider for null checks (#4615) 2024-12-18 13:24:42 -05:00
ohif-bot
0fc89c3bb6 chore(version): Update package versions [skip ci] 2024-12-18 17:18:57 +00:00
ohif-bot
e2903319b7 chore(version): version.json [skip ci] 2024-12-18 17:18:51 +00:00
dependabot[bot]
489171a14c
chore(deps): bump nanoid from 3.3.7 to 3.3.8 (#4587)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alireza <ar.sedghi@gmail.com>
2024-12-18 12:14:12 -05:00
ohif-bot
ddb19ab3da chore(version): Update package versions [skip ci] 2024-12-18 16:38:15 +00:00
ohif-bot
e90757081f chore(version): version.json [skip ci] 2024-12-18 16:38:09 +00:00
Joe Boccanfuso
4d3d5e794c
feat(measurements): Provide for the Load (SR) measurements button to optionally clear existing measurements prior to loading the SR. (#4586) 2024-12-18 11:33:40 -05:00
ohif-bot
7eec015ff1 chore(version): Update package versions [skip ci] 2024-12-18 14:52:37 +00:00
ohif-bot
0e2077095d chore(version): version.json [skip ci] 2024-12-18 14:52:31 +00:00
Ceciliadrc
52cf9b1e03
fix: ohif icons in Header (#4611) 2024-12-18 09:47:38 -05:00
ohif-bot
541e12a108 chore(version): Update package versions [skip ci] 2024-12-17 18:54:44 +00:00
ohif-bot
f8c89dd58a chore(version): version.json [skip ci] 2024-12-17 18:54:37 +00:00
Bill Wallace
d0ccdbd68d
fix: Documentation and default enabled for bulkdata load (#4607) 2024-12-17 13:49:42 -05:00
ohif-bot
edefe8abda chore(version): Update package versions [skip ci] 2024-12-17 18:24:43 +00:00
ohif-bot
ce0830812e chore(version): version.json [skip ci] 2024-12-17 18:24:37 +00:00
Alireza
4e2ae32874
feat: migrate icons to ui-next (#4606) 2024-12-17 13:20:19 -05:00
ohif-bot
e93a9c70c5 chore(version): Update package versions [skip ci] 2024-12-17 17:39:07 +00:00
ohif-bot
5ffa751cff chore(version): version.json [skip ci] 2024-12-17 17:39:00 +00:00
Alireza
9bf24d6dc5
fix(seg): jump to the first slice in SEG and RT that has data (#4605) 2024-12-17 12:34:13 -05:00
ohif-bot
7586006e7f chore(version): Update package versions [skip ci] 2024-12-13 15:12:39 +00:00
ohif-bot
6e4f7a887a chore(version): version.json [skip ci] 2024-12-13 15:12:34 +00:00
Ibrahim
60fc7d6a11
fix(tag-browser): fix dicom tag browser not loading in segmentation mode in study panel (#4601) 2024-12-13 10:07:59 -05:00
ohif-bot
7ca9df1b2b chore(version): Update package versions [skip ci] 2024-12-11 20:30:55 +00:00
ohif-bot
2a2e96378a chore(version): version.json [skip ci] 2024-12-11 20:30:49 +00:00
Alireza
1f04d6c1be
feat(node): move to node 20 (#4594) 2024-12-11 15:26:26 -05:00
ohif-bot
ab41183ce5 chore(version): Update package versions [skip ci] 2024-12-11 16:53:58 +00:00
ohif-bot
414b974505 chore(version): version.json [skip ci] 2024-12-11 16:53:49 +00:00
Ibrahim
684267b19b
fix(worklist): selected patient changes randomly when clicked. (#4592) 2024-12-11 11:49:15 -05:00
ohif-bot
64a9f3828b chore(version): Update package versions [skip ci] 2024-12-11 02:25:59 +00:00
ohif-bot
0f428db983 chore(version): version.json [skip ci] 2024-12-11 02:25:50 +00:00
Ibrahim
1078df99aa
docs(azure): Add azure integration guide and datasource configuration (#4579) 2024-12-10 21:19:58 -05:00
ohif-bot
76fb2f56d4 chore(version): Update package versions [skip ci] 2024-12-06 02:44:11 +00:00
ohif-bot
54edfdcb04 chore(version): version.json [skip ci] 2024-12-06 02:44:03 +00:00
Alireza
6ec04ca65e
fix(sr): correct jump to first image via viewRef (#4576) 2024-12-05 21:39:13 -05:00
ohif-bot
6c7f535676 chore(version): Update package versions [skip ci] 2024-12-06 02:02:37 +00:00
ohif-bot
3708917f15 chore(version): version.json [skip ci] 2024-12-06 02:02:28 +00:00
Joe Boccanfuso
6160718fd2
fix(touch): For viewport interactions use onPointerDown. (#4572) 2024-12-05 20:57:34 -05:00
ohif-bot
ee9593a7e0 chore(version): Update package versions [skip ci] 2024-12-05 18:35:10 +00:00
ohif-bot
581aab67a6 chore(version): version.json [skip ci] 2024-12-05 18:35:03 +00:00
Leonardo Campos
7cc6c1484a
fix(defaultRouteInit): fixes 'madeInClient' parameter when 'makeDisplaySets' is called (#4571) 2024-12-05 13:30:23 -05:00
Leonardo Campos
f87c6cd2aa
feat(extension): added 'extensionManager' to 'onModeEnter' parameter list (#4569) 2024-12-05 13:29:59 -05:00
ohif-bot
3ee0aafebc chore(version): Update package versions [skip ci] 2024-12-05 16:35:51 +00:00
ohif-bot
ced674e48a chore(version): version.json [skip ci] 2024-12-05 16:35:44 +00:00
Alireza
b8e8bbe482
fix(CinePlayer): always show cine player for dynamic data (#4575)
Co-authored-by: Ibrahim <ibrahim.mdev@gmail.com>
2024-12-05 11:30:21 -05:00
ohif-bot
72a35ce905 chore(version): Update package versions [skip ci] 2024-12-03 19:32:07 +00:00
ohif-bot
a9e566ffee chore(version): version.json [skip ci] 2024-12-03 19:31:59 +00:00
Leonardo Campos
bca2022351
fix(WorkflowSteps): fixed how hooks are invoked + added support for 'onExit' hook (#4568) 2024-12-03 16:26:47 -03:00
ohif-bot
e4595fd234 chore(version): Update package versions [skip ci] 2024-12-02 13:59:08 +00:00
ohif-bot
0ea2c7fdde chore(version): version.json [skip ci] 2024-12-02 13:59:00 +00:00
Salim Kanoun
878a1f8af8
fix : Resize was broken if 3d viewport displayed in HP (#4561) 2024-12-02 08:53:46 -05:00
ohif-bot
0a81ddb6da chore(version): Update package versions [skip ci] 2024-11-29 16:24:36 +00:00
ohif-bot
e528238bc2 chore(version): version.json [skip ci] 2024-11-29 16:24:28 +00:00
Ibrahim
085590a4ca
fix(cli): publish 4D preclincial mode on NPM so it can be used in the OHIF cli commands (#4557) 2024-11-29 11:19:23 -05:00
ohif-bot
96f6b0643b chore(version): Update package versions [skip ci] 2024-11-28 18:27:42 +00:00
ohif-bot
207ee65bc7 chore(version): version.json [skip ci] 2024-11-28 18:27:34 +00:00
Alireza
7624ccb5e4
fix(multiframe): metadata handling of NM studies and loading order (#4554) 2024-11-28 13:22:40 -05:00
ohif-bot
6729534a1a chore(version): Update package versions [skip ci] 2024-11-28 17:46:10 +00:00
ohif-bot
3aafcfc28d chore(version): version.json [skip ci] 2024-11-28 17:46:02 +00:00
Alireza
397fd85653
feat(segmentation): Enhance dropdown menu functionality in SegmentationTable (#4553) 2024-11-28 12:41:08 -05:00
ohif-bot
144ec791a2 chore(version): Update package versions [skip ci] 2024-11-22 20:15:57 +00:00
ohif-bot
0846375f53 chore(version): version.json [skip ci] 2024-11-22 20:15:48 +00:00
Ibrahim
b9c26e775a
fix(colorlut): use the correct colorlut index and update vtk (#4544) 2024-11-22 15:08:55 -05:00
ohif-bot
84e0490d76 chore(version): Update package versions [skip ci] 2024-11-22 19:51:52 +00:00
ohif-bot
00bb07a812 chore(version): version.json [skip ci] 2024-11-22 19:51:44 +00:00
Ibrahim
44648eef92
fix(modes): don't attempt to retrieve a stage index if HPs are an array (#4542) 2024-11-22 14:46:31 -05:00
ohif-bot
900a265637 chore(version): Update package versions [skip ci] 2024-11-22 17:06:15 +00:00
ohif-bot
fe4e36bc3d chore(version): version.json [skip ci] 2024-11-22 17:06:07 +00:00
Bill Wallace
edfaf7248d
fix: Make the commands ordering the registration order of hte mode (#4492) 2024-11-22 12:00:47 -05:00
ohif-bot
f0dee87882 chore(version): Update package versions [skip ci] 2024-11-22 16:05:54 +00:00
ohif-bot
03687dbfd0 chore(version): version.json [skip ci] 2024-11-22 16:05:43 +00:00
Ibrahim
27ae385fd7
fix(error-boundray): prevent stack trace from overflowing and make it scrollable (#4541) 2024-11-22 11:00:19 -05:00
ohif-bot
d8ef36ed24 chore(version): Update package versions [skip ci] 2024-11-15 18:07:11 +00:00
ohif-bot
dd3127568c chore(version): version.json [skip ci] 2024-11-15 18:07:03 +00:00
Ibrahim
32fe2623cf
fix(viewport): set a minimum width of 5px on viewports to prevent them from turning black/ going into an unrecoverable state. (#4517)
[OHI-865] [OHI-646]
2024-11-15 13:02:13 -05:00
ohif-bot
7f3cde486b chore(version): Update package versions [skip ci] 2024-11-15 14:11:04 +00:00
ohif-bot
73ec0af4a6 chore(version): version.json [skip ci] 2024-11-15 14:10:57 +00:00
Ibrahim
d05db4cb61
fix(ci): address error in merge report step of the playwright workflow (#4518)
[OHI-1333]
2024-11-15 09:06:28 -05:00
ohif-bot
e85a313db4 chore(version): Update package versions [skip ci] 2024-11-14 18:12:10 +00:00
ohif-bot
7db6b8bbfe chore(version): version.json [skip ci] 2024-11-14 18:12:02 +00:00
Ibrahim
5aeed931c2
chore(CI): move tasks from yarn to bun, improve cypress tests (#4476) 2024-11-14 13:06:58 -05:00
Ștefan Silviu-Alexandru
ad8f205e41
fix: avoid black images after hiding the viewports (#4502) 2024-11-14 12:51:44 -05:00
Alireza
2b62b187a0
docs: edit migration guides (#4504) 2024-11-14 12:37:04 -05:00
ohif-bot
1d9c0e530f chore(version): Update package versions [skip ci] 2024-11-13 02:37:33 +00:00
ohif-bot
b5ea1b7e5b chore(version): version.json [skip ci] 2024-11-13 02:37:24 +00:00
Alireza
c05e0f00c7
docs: remove banner (#4498) 2024-11-12 21:17:53 -05:00
ohif-bot
b39e5c5dc9 chore(version): Update package versions [skip ci] 2024-11-12 22:50:22 +00:00
ohif-bot
88b9fe8dbe chore(version): version.json [skip ci] 2024-11-12 22:50:13 +00:00
Alireza
623d44b150
docs: update docs version (#4496) 2024-11-12 17:31:19 -05:00
ohif-bot
da3207781d chore(version): Update package versions [skip ci] 2024-11-12 21:37:33 +00:00
ohif-bot
9a86abff4c chore(version): version.json [skip ci] 2024-11-12 21:37:26 +00:00
Alireza
6d0fa11ff8
docs: update to next version [BUMP BETA] (#4493) 2024-11-12 16:18:33 -05:00
ohif-bot
f4775eccae chore(version): Update package versions [skip ci] 2024-11-12 18:31:31 +00:00
ohif-bot
bf8fe7799c chore(version): version.json [skip ci] 2024-11-12 18:31:25 +00:00
Alireza
62b2748847
fix: Measurement Tracking: Various UI and functionality improvements (#4481) 2024-11-12 13:14:47 -05:00
Bill Wallace
4a125236dd
fix: Have an addIcon that adds to both ui and ui-next (#4490) 2024-11-12 12:34:14 -05:00
Ibrahim
a5f03764d1
fix(styles): several fixes for different styles (#4483) 2024-11-12 12:33:45 -05:00
Dan Rukas
1801a217e3
ui(components): updated component font sizes and design component docs (#4486) 2024-11-12 12:33:09 -05:00
ohif-bot
23a2582231 chore(version): Update package versions [skip ci] 2024-11-11 19:45:52 +00:00
ohif-bot
1105db5dd1 chore(version): version.json [skip ci] 2024-11-11 19:45:44 +00:00
Alireza
05d41c5206
fix(bugs): Update dependencies and enhance UI components (#4478) 2024-11-11 14:28:34 -05:00
ohif-bot
61e3a9cb52 chore(version): Update package versions [skip ci] 2024-11-08 15:51:44 +00:00
ohif-bot
4b69279c70 chore(version): version.json [skip ci] 2024-11-08 15:51:36 +00:00
Ibrahim
8fb8b3bfd1
fix(style): worklist shifting (#4477) 2024-11-08 10:34:22 -05:00
ohif-bot
c1a196d802 chore(version): Update package versions [skip ci] 2024-11-07 05:37:54 +00:00
ohif-bot
4a564528ba chore(version): version.json [skip ci] 2024-11-07 05:37:46 +00:00
Alireza
aa2b649444
fix(tmtv): fix toggle one up weird behaviours (#4473) 2024-11-07 00:20:30 -05:00
ohif-bot
3f7ae76113 chore(version): Update package versions [skip ci] 2024-11-06 16:36:09 +00:00
ohif-bot
43ad641cf1 chore(version): version.json [skip ci] 2024-11-06 16:36:00 +00:00
Leszek Grzanka
c80cd6102d
fix(JSONScript) update name of the script in the comments to follow renaming (#4441) 2024-11-06 11:19:20 -05:00
Alireza
3d11ef28f2
fix: build (#4471) 2024-11-06 11:16:43 -05:00
ohif-bot
69a81ae838 chore(version): Update package versions [skip ci] 2024-11-06 12:34:24 +00:00
ohif-bot
417785ecbc chore(version): version.json [skip ci] 2024-11-06 12:34:15 +00:00
Alireza
7ce7127d7c
OHIF with Cornerstone3D 2.0 (#4347) 2024-11-06 07:15:27 -05:00
ohif-bot
8981a61b8c chore(version): Update package versions [skip ci] 2024-11-05 18:47:30 +00:00
ohif-bot
c66c688ace chore(version): version.json [skip ci] 2024-11-05 18:47:21 +00:00
Dan Rukas
d9450104af
fix(ui) Study Browser small spacing changes (#4469) 2024-11-05 13:28:59 -05:00
ohif-bot
2835a555c8 chore(version): Update package versions [skip ci] 2024-10-30 14:34:08 +00:00
ohif-bot
41e8ee692b chore(version): version.json [skip ci] 2024-10-30 14:33:59 +00:00
Pedro H. Köhler
4f20523109
fix(ui): show ui notification on displaySet load error (#4447) 2024-10-30 10:15:48 -04:00
ohif-bot
0166956dd8 chore(version): Update package versions [skip ci] 2024-10-29 23:31:44 +00:00
ohif-bot
1aa2c646a6 chore(version): version.json [skip ci] 2024-10-29 23:31:37 +00:00
Pedro H. Köhler
2e96371b06
fix(ui): display error in ui while loading seg (#4433) 2024-10-29 19:14:34 -04:00
ohif-bot
543c31109b chore(version): Update package versions [skip ci] 2024-10-29 14:10:39 +00:00
ohif-bot
2d1704063c chore(version): version.json [skip ci] 2024-10-29 14:10:31 +00:00
Pedro H. Köhler
0610425740
fix(packages): http-proxy-middleware vulnerability (#4443) 2024-10-29 09:52:07 -04:00
ohif-bot
ce9ff7d535 chore(version): Update package versions [skip ci] 2024-10-18 15:59:40 +00:00
ohif-bot
b4918d8a33 chore(version): version.json [skip ci] 2024-10-18 15:59:32 +00:00
Ibrahim
a7fd9fa5bf
feat(new-study-panel): default to list view for non thumbnail series, change default fitler to all, and add more menu to thumbnail items with a dicom tag browser (#4417) 2024-10-18 11:42:44 -04:00
ohif-bot
1d0259451f chore(version): Update package versions [skip ci] 2024-10-17 16:39:04 +00:00
ohif-bot
abf2093d30 chore(version): version.json [skip ci] 2024-10-17 16:38:55 +00:00
dependabot[bot]
8fc395e68f
chore(deps): bump webpack from 5.89.0 to 5.94.0 (#4354)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-17 12:20:33 -04:00
Ibrahim
33af9bb021
fix(tmtv): prevent fusion row in tmtv from getting inverted unexpectedly (#4420) 2024-10-17 12:18:15 -04:00
ohif-bot
8dab0883c8 chore(version): Update package versions [skip ci] 2024-10-17 14:20:54 +00:00
ohif-bot
a146c9a50e chore(version): version.json [skip ci] 2024-10-17 14:20:44 +00:00
Billuc
2ec4692eaf
fix(createReport): early return on cancel in prompt (#4243)
Co-authored-by: Luc Billaud <luc.billaud@creatis.insa-lyon.fr>
2024-10-17 09:49:53 -04:00
Ibrahim
03aad4eba2
fix(typo): type in fourup preset (#4426) 2024-10-17 09:47:37 -04:00
dependabot[bot]
f14aee2733
chore(deps): bump micromatch from 4.0.7 to 4.0.8 (#4350)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-17 09:46:36 -04:00
dependabot[bot]
57eb829173
chore(deps): bump express from 4.19.2 to 4.21.1 (#4422)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-17 09:44:37 -04:00
Ibrahim
ace67b3bbb
fix(hp-presets): select the active displaySet when toggling an HP preset, not a random one from the series panel (#4365) 2024-10-17 09:43:48 -04:00
Ibrahim
307b14476b
fix(tools): check if seriesNumber is an undefined properly (#4338) 2024-10-17 09:43:10 -04:00
Ibrahim
433cc8089d
fix(3d-viewport): exception was being thrown and 3d viewpot not getting resized. (#4366) 2024-10-17 09:42:05 -04:00
Sofien-Sellami
fa2435d5e9
feat(hangingProtocols): added selection of the HangingProtocol stage from the url (#4310) 2024-10-17 09:41:41 -04:00
Ceciliadrc
e8f9345b93
feat(removeButton) : add remove button from toolbar option (#4408) 2024-10-17 09:40:53 -04:00
brandon flowers
e254e7bb3d
chore(ui): Added Data Test Ids to Cine controls for e2e Testing (#4415) 2024-10-17 09:40:24 -04:00
Joeycho
7353f7f069
fix(sr): load existing point, if there is 2nd point in renderableData (Fix rotation in arrow annotation) (#4356) 2024-10-17 09:39:48 -04:00
Igor Octaviano
3dd0666c0c
fix(dicomjson): Update getUIDsFromImageID to work with json data source + update getDisplaySetImageUIDs to work with mixed sop class json (#4322) 2024-10-17 09:38:40 -04:00
Ceciliadrc
d5bcf54e23
fix(updateIndex): getNumberOfSlices is defined when used with a 3D viewport (#4424) 2024-10-17 09:36:42 -04:00
Igor Octaviano
ac1cad25af
feat(SR): SCOORD3D point annotations support for stack viewports (#4315) 2024-10-17 09:36:24 -04:00
Dan Rukas
e0fca8c88c
ui(component): Added new Toast (Sonner) component (#4412) 2024-10-17 09:30:42 -04:00
ohif-bot
43f54aa49c chore(version): Update package versions [skip ci] 2024-10-15 14:10:16 +00:00
ohif-bot
9b2e98a760 chore(version): version.json [skip ci] 2024-10-15 14:10:08 +00:00
Alireza
465df5c573
docs(ui): add base for ui component showcase in docs (#4414) 2024-10-15 09:53:26 -04:00
ohif-bot
9125cec333 chore(version): Update package versions [skip ci] 2024-10-11 13:25:01 +00:00
ohif-bot
87d623a76e chore(version): version.json [skip ci] 2024-10-11 13:24:54 +00:00
James Petts
e849199eb0
fix(auth): oidc-react-issue (#4410)
Co-authored-by: James Petts <jamespetts@Yunu-MacBookPro-JamesPetts.local>
2024-10-11 09:09:26 -04:00
ohif-bot
0495020389 chore(version): Update package versions [skip ci] 2024-10-10 15:28:10 +00:00
ohif-bot
98ab95a743 chore(version): version.json [skip ci] 2024-10-10 15:28:02 +00:00
Ibrahim
ec685ef5b9
fix(fossa): update fossa to track licenses correctly (#4411) 2024-10-10 11:12:21 -04:00
ohif-bot
70eb2aa6d7 chore(version): Update package versions [skip ci] 2024-10-08 16:41:57 +00:00
ohif-bot
a1597d7bd6 chore(version): version.json [skip ci] 2024-10-08 16:41:49 +00:00
Dan Rukas
8f0035aeef
ui(component): Adds flexible DataRow component (#4399) 2024-10-08 12:25:44 -04:00
ohif-bot
c8923c5499 chore(version): Update package versions [skip ci] 2024-10-04 18:02:36 +00:00
ohif-bot
c0c4f2398c chore(version): version.json [skip ci] 2024-10-04 18:02:29 +00:00
Ibrahim
60a8d5154a
feat(tours): freeze versions and add licensings doc (#4407) 2024-10-04 13:47:32 -04:00
ohif-bot
efc554bd49 chore(version): Update package versions [skip ci] 2024-10-04 17:21:26 +00:00
ohif-bot
fc5f73bdfd chore(version): version.json [skip ci] 2024-10-04 17:21:18 +00:00
Ibrahim
579a592812 Merge branch 'IbrahimCSAE-feat/interactive-onboarding-guides' 2024-10-04 12:53:33 -04:00
Ibrahim
ea961d6b66 add demo 2024-10-04 12:42:19 -04:00
Ibrahim
69a620ac68 read me 2024-10-04 12:37:10 -04:00
Ibrahim
8eaebd015d updates 2024-10-04 12:28:26 -04:00
Ibrahim
0326496c47 updates 2024-10-04 12:27:43 -04:00
Ibrahim
327f2cb1cf update 2024-10-04 12:16:56 -04:00
Ibrahim
478def8447 updates 2024-10-04 12:16:01 -04:00
Ibrahim
0a9cbb7589 updates 2024-10-04 12:14:31 -04:00
Ibrahim
c5752e756a updates 2024-10-04 10:03:20 -04:00
Ibrahim
3b20d2b816 updates 2024-10-04 08:27:40 -04:00
Ibrahim
0d4cb69ec3 styling 2024-10-04 08:18:20 -04:00
ohif-bot
4f18a21868 chore(version): Update package versions [skip ci] 2024-10-01 20:56:33 +00:00
ohif-bot
c4299de984 chore(version): version.json [skip ci] 2024-10-01 20:56:25 +00:00
Pedro H. Köhler
a11cd6d6cb
fix(Select): select clear button (#4398) 2024-10-01 16:42:21 -04:00
ohif-bot
a72192da28 chore(version): Update package versions [skip ci] 2024-10-01 12:49:31 +00:00
ohif-bot
0dca891ff3 chore(version): version.json [skip ci] 2024-10-01 12:49:22 +00:00
Pedro H. Köhler
b4f08adfb6
fix(dependent): high priority vulnerabilities (#4396) 2024-10-01 08:20:19 -04:00
ohif-bot
4d87e4dbda chore(version): Update package versions [skip ci] 2024-09-30 22:00:24 +00:00
ohif-bot
6a02f0b41c chore(version): version.json [skip ci] 2024-09-30 22:00:16 +00:00
Igor Octaviano
43efed207e
fix: 🐛 Fix imports for ui-next (#4394) 2024-09-30 17:45:14 -04:00
Ibrahim
4f2583483c updates 2024-09-27 16:38:07 -04:00
Ibrahim
e3f7838ce0 updates 2024-09-27 16:27:23 -04:00
Ibrahim
08d329add4 updates 2024-09-27 16:14:14 -04:00
Ibrahim
579c0c9d01 updates 2024-09-27 15:44:01 -04:00
Ibrahim
ea7a3e07cb u 2024-09-27 12:58:48 -04:00
Ibrahim
e91811ff23 updates 2024-09-27 12:58:39 -04:00
ohif-bot
dd8e69a8cf chore(version): Update package versions [skip ci] 2024-09-27 16:33:00 +00:00
ohif-bot
b1b66076b9 chore(version): version.json [skip ci] 2024-09-27 16:32:51 +00:00
Dan Rukas
80b1f54af1
ui(dropdown menu): Added DropdownMenu component in ui-next (#4387) 2024-09-27 12:17:54 -04:00
ohif-bot
75fde87b59 chore(version): Update package versions [skip ci] 2024-09-24 19:59:31 +00:00
ohif-bot
64f2f50f63 chore(version): version.json [skip ci] 2024-09-24 19:59:24 +00:00
Dan Rukas
7f17d5d733
ui(segmentation): Design Prototype for split panel component (#4378) 2024-09-24 15:44:59 -04:00
Ibrahim
9ff4ece541 updates 2024-09-22 20:47:33 -04:00
Ibrahim
e534802abb updates 2024-09-22 20:41:12 -04:00
Ibrahim
51a87028c1 updates 2024-09-22 20:30:07 -04:00
Ibrahim
eba85aa5b3 updates 2024-09-22 20:30:00 -04:00
Ibrahim
331778dfef Merge branch 'feat/interactive-onboarding-guides' of https://github.com/IbrahimCSAE/Viewers into local-interactive-onboarding-guides 2024-09-20 11:44:43 -04:00
Ibrahim
daa5a857e4 updates 2024-09-20 11:44:36 -04:00
ohif-bot
cb1f3b877b chore(version): Update package versions [skip ci] 2024-09-19 16:23:16 +00:00
ohif-bot
f748d2a73a chore(version): version.json [skip ci] 2024-09-19 16:23:09 +00:00
Dan Rukas
365d824b98
fix(ui): Fixed study component open and closed feedback in Studies panel (#4384) 2024-09-19 12:07:54 -04:00
ohif-bot
ee8962e9a7 chore(version): Update package versions [skip ci] 2024-09-19 04:39:08 +00:00
ohif-bot
cde457c626 chore(version): version.json [skip ci] 2024-09-19 04:39:01 +00:00
Alireza
5ef102681d
refactor(config): Update AWS S3 Static wado server URLs (#4381) 2024-09-19 00:23:28 -04:00
ohif-bot
d55e794a86 chore(version): Update package versions [skip ci] 2024-09-17 04:08:08 +00:00
ohif-bot
4f7fa35def chore(version): version.json [skip ci] 2024-09-17 04:08:01 +00:00
Ibrahim
1f09527ae6
docs(mobile): IOS & Android Debugging Guides (#4371) 2024-09-16 23:53:10 -04:00
Ibrahim
118922f365 progress 2024-09-13 11:01:41 -04:00
ohif-bot
926f549e91 chore(version): Update package versions [skip ci] 2024-09-12 18:49:56 +00:00
ohif-bot
0d900bf4ad chore(version): version.json [skip ci] 2024-09-12 18:49:48 +00:00
Pedro H. Köhler
1bfce0a03c
feat(toolbar): enable extensions to change toolbar button sections (#4367) 2024-09-12 14:34:25 -04:00
ohif-bot
c08debd65a chore(version): Update package versions [skip ci] 2024-09-11 19:13:10 +00:00
ohif-bot
ab5cead2af chore(version): version.json [skip ci] 2024-09-11 19:13:02 +00:00
Ibrahim
7a96406a11
feat(studies-panel): New OHIF study panel - under experimental flag (#4254) 2024-09-11 14:57:19 -04:00
ohif-bot
4432b6b420 chore(version): Update package versions [skip ci] 2024-09-05 13:31:46 +00:00
ohif-bot
7670941256 chore(version): version.json [skip ci] 2024-09-05 13:31:38 +00:00
Bill Wallace
e1feffa425
fix: Add kheops integration into OHIF v3 again (#4345) 2024-09-05 09:15:48 -04:00
ohif-bot
3b47e6971c chore(version): Update package versions [skip ci] 2024-08-27 12:05:44 +00:00
ohif-bot
13ea778e61 chore(version): version.json [skip ci] 2024-08-27 12:05:36 +00:00
Igor Octaviano
14498d4e9a
fix: 🐛 SeriesInstanceUID fallback + update retrieve metadata filtered to check for lazy (#4346) 2024-08-27 07:49:48 -04:00
ohif-bot
83f3bf4ec1 chore(version): Update package versions [skip ci] 2024-08-16 05:35:24 +00:00
ohif-bot
3b96c9e771 chore(version): version.json [skip ci] 2024-08-16 05:35:17 +00:00
dependabot[bot]
da8bdb94a9
chore(deps): bump axios from 0.25.0 to 0.28.1 (#4337)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-16 01:09:56 -04:00
ohif-bot
1f2c7c4c57 chore(version): Update package versions [skip ci] 2024-08-16 02:11:52 +00:00
ohif-bot
5c7a8d0c56 chore(version): version.json [skip ci] 2024-08-16 02:11:45 +00:00
dxlin
b2c0faf29d
Test: Playwright tests for tmtv (#4331)
Co-authored-by: Ibrahim <93064150+IbrahimCSAE@users.noreply.github.com>
Co-authored-by: Ibrahim <ibrahim.mdev@gmail.com>
2024-08-15 21:57:04 -04:00
ohif-bot
4068488bb2 chore(version): Update package versions [skip ci] 2024-08-15 18:52:14 +00:00
ohif-bot
acc6a217c9 chore(version): version.json [skip ci] 2024-08-15 18:52:06 +00:00
Bill Wallace
7599ec9421
feat: Add CS3D WSI and Video Viewports and add annotation navigation for MPR (#4182) 2024-08-15 14:36:53 -04:00
ohif-bot
b12e0211d4 chore(version): Update package versions [skip ci] 2024-08-15 15:29:35 +00:00
ohif-bot
689008eb82 chore(version): version.json [skip ci] 2024-08-15 15:29:26 +00:00
Ibrahim
7377db8d28
fix(roundNumber): handle negative numbers properly (#4336) 2024-08-15 11:13:27 -04:00
ohif-bot
a2be64f899 chore(version): Update package versions [skip ci] 2024-08-08 15:50:34 +00:00
ohif-bot
5a2e88455a chore(version): version.json [skip ci] 2024-08-08 15:50:27 +00:00
Pedro H. Köhler
ab6e341731
fix: unexpected mpr measurements (#4332) 2024-08-08 11:33:36 -04:00
ohif-bot
45f3a2d84d chore(version): Update package versions [skip ci] 2024-08-07 15:24:37 +00:00
ohif-bot
00f78adb1f chore(version): version.json [skip ci] 2024-08-07 15:24:29 +00:00
Salim Kanoun
8e7cc11529
fix(ui): Tailwind build errors (#4329) 2024-08-07 11:08:52 -04:00
ohif-bot
c21d4848ef chore(version): Update package versions [skip ci] 2024-08-06 13:42:34 +00:00
ohif-bot
1de19a07c1 chore(version): version.json [skip ci] 2024-08-06 13:42:27 +00:00
Igor Octaviano
9b10303a2e
fix(url): series query param filtering (#4328) 2024-08-06 09:26:34 -04:00
ohif-bot
c6d3990341 chore(version): Update package versions [skip ci] 2024-08-02 17:01:10 +00:00
ohif-bot
c42cd90c1d chore(version): version.json [skip ci] 2024-08-02 17:01:02 +00:00
Dan Rukas
90364189b8
feat(ui): Created design and added core components for ui-next (#4324) 2024-08-02 12:35:07 -04:00
ohif-bot
00707db1ad chore(version): Update package versions [skip ci] 2024-07-31 15:37:18 +00:00
ohif-bot
688d896f3e chore(version): version.json [skip ci] 2024-07-31 15:37:10 +00:00
Pedro H. Köhler
72bef63ef6
fix: customization types (#4321) 2024-07-31 11:21:51 -04:00
ohif-bot
50669867c9 chore(version): Update package versions [skip ci] 2024-07-30 16:14:37 +00:00
ohif-bot
90d974b90c chore(version): version.json [skip ci] 2024-07-30 16:14:29 +00:00
Pedro H. Köhler
aa0e5a5937
fix: ip SSRF improper categorization (#4319) 2024-07-30 11:58:50 -04:00
ohif-bot
dd2648a080 chore(version): Update package versions [skip ci] 2024-07-30 13:21:38 +00:00
ohif-bot
0dbf85a3d5 chore(version): version.json [skip ci] 2024-07-30 13:21:29 +00:00
Salim Kanoun
d402ded8c3
fix(ui): remove border-border class (#4317) 2024-07-30 09:05:19 -04:00
ohif-bot
b1514b9a3e chore(version): Update package versions [skip ci] 2024-07-27 02:41:22 +00:00
ohif-bot
bbfa3c1a1f chore(version): version.json [skip ci] 2024-07-27 02:41:15 +00:00
dependabot[bot]
ba8af0f35b
chore(deps): bump sharp from 0.30.7 to 0.32.6 (#4314)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-26 22:26:22 -04:00
ohif-bot
5755ce5430 chore(version): Update package versions [skip ci] 2024-07-26 17:03:24 +00:00
ohif-bot
a7cba1a3cf chore(version): version.json [skip ci] 2024-07-26 17:03:16 +00:00
Igor Octaviano
16b7aa4f65
fix(dicom): Update multiframe DICOM JSON parsing for correct image ID generation (#4307) 2024-07-26 12:47:49 -04:00
ohif-bot
9f0828ae27 chore(version): Update package versions [skip ci] 2024-07-26 15:20:34 +00:00
ohif-bot
8903e3c3dd chore(version): version.json [skip ci] 2024-07-26 15:20:26 +00:00
Alireza
6231629b38
chore(ui): creating a playground for the new components (#4301)
Co-authored-by: Dan Rukas <dan.rukas@gmail.com>
2024-07-26 11:04:58 -04:00
ohif-bot
b9eb54c71f chore(version): Update package versions [skip ci] 2024-07-24 20:56:53 +00:00
ohif-bot
2656beef0e chore(version): version.json [skip ci] 2024-07-24 20:56:45 +00:00
Leonardo Campos
fc0064fd9d
feat(pmap): added support for parametric map (#4284) 2024-07-24 16:40:28 -04:00
ohif-bot
9f3fc382c3 chore(version): Update package versions [skip ci] 2024-07-23 15:43:31 +00:00
ohif-bot
640200ba7e chore(version): version.json [skip ci] 2024-07-23 15:43:23 +00:00
Leonardo Campos
246ebab6eb
feat(SR): text structured report (TEXT, CODE, NUM, PNAME, DATE, TIME and DATETIME) (#4287) 2024-07-23 11:28:48 -04:00
ohif-bot
58da0324cd chore(version): Update package versions [skip ci] 2024-07-19 14:10:42 +00:00
ohif-bot
c9a2496aab chore(version): version.json [skip ci] 2024-07-19 14:10:34 +00:00
Pavel Klochkov
4368eb3896
docs(resources) Update resources.md in Docs (#4290) 2024-07-19 09:57:22 -04:00
ohif-bot
fc9b521fa9 chore(version): Update package versions [skip ci] 2024-07-10 15:43:46 +00:00
ohif-bot
dcd1e4eb28 chore(version): version.json [skip ci] 2024-07-10 15:43:37 +00:00
Ibrahim
0968b3abb1
docs(tools): add listener helpful tip for migration (#4285) 2024-07-10 11:28:35 -04:00
ohif-bot
f6cdbe46bc chore(version): Update package versions [skip ci] 2024-07-09 19:17:33 +00:00
ohif-bot
d8ae7b884b chore(version): version.json [skip ci] 2024-07-09 19:17:25 +00:00
Celian-abd
38c19fab77
fix: the start/end command in TMTV for the ROIStartEndThreshold tools (#4281) 2024-07-09 14:49:42 -04:00
ohif-bot
4b91ce4df9 chore(version): Update package versions [skip ci] 2024-07-09 18:48:34 +00:00
ohif-bot
6fb7efc46d chore(version): version.json [skip ci] 2024-07-09 18:48:27 +00:00
Ibrahim
aefa6d94df
feat(auth): Add Authorization Code Flow and new Keycloak recipes with new video tutorials (#4234)
Co-authored-by: Alireza <ar.sedghi@gmail.com>
2024-07-09 14:33:37 -04:00
ohif-bot
998302eb85 chore(version): Update package versions [skip ci] 2024-07-09 15:27:38 +00:00
ohif-bot
400e914011 chore(version): version.json [skip ci] 2024-07-09 15:27:30 +00:00
Bill Wallace
31271aeef7
fix: Tests run against e2e config for both playwright and older tests (#4283)
Co-authored-by: IbrahimCSAE <ibrahim.mdev@gmail.com>
2024-07-09 11:13:07 -04:00
ohif-bot
993308b32b chore(version): Update package versions [skip ci] 2024-07-05 18:15:46 +00:00
ohif-bot
3a0b36d4e4 chore(version): version.json [skip ci] 2024-07-05 18:15:38 +00:00
Bill Wallace
24c511f4bc
fix: webpack import bugs showing warnings on import (#4265) 2024-07-05 13:19:42 -04:00
Hemant Patel
6d11048ca5
fix(image-orientation): Prevent incorrect orientation marker display for single-slice US images (#4275) 2024-07-05 13:08:48 -04:00
Bill Wallace
6fd3c7e293
fix: Cobb angle not working in basic-test mode and open contour (#4280) 2024-07-05 12:43:18 -04:00
Bill Wallace
a2084f319b
feat: Add interleaved HTJ2K and volume progressive loading (#4276) 2024-07-05 12:33:07 -04:00
ohif-bot
2845f07806 chore(version): Update package versions [skip ci] 2024-07-04 02:24:23 +00:00
ohif-bot
78b814224e chore(version): version.json [skip ci] 2024-07-04 02:24:16 +00:00
Celian-abd
b2c629123c
fix: stdValue in TMTV mode (#4278) 2024-07-03 22:10:47 -04:00
ohif-bot
6102e5d80f chore(version): Update package versions [skip ci] 2024-07-02 14:34:25 +00:00
ohif-bot
9b9e5be477 chore(version): version.json [skip ci] 2024-07-02 14:34:18 +00:00
Ibrahim
32762e6bce
test(weekly): crosshair tests (#4273) 2024-07-02 10:20:31 -04:00
ohif-bot
6faf3a17f9 chore(version): Update package versions [skip ci] 2024-07-02 13:22:18 +00:00
ohif-bot
bd742d19b2 chore(version): version.json [skip ci] 2024-07-02 13:22:10 +00:00
Salim Kanoun
5531487fd6
docs : Removed deprecated useBulkDataURI (#4272) 2024-07-02 09:08:37 -04:00
ohif-bot
6c7d01a184 chore(version): Update package versions [skip ci] 2024-06-28 13:45:33 +00:00
ohif-bot
369851d87f chore(version): version.json [skip ci] 2024-06-28 13:45:27 +00:00
Alireza
16cfab2aca
chore: remove polyfill io (#4270) 2024-06-28 09:31:47 -04:00
ohif-bot
e60d3bc069 chore(version): Update package versions [skip ci] 2024-06-28 13:23:20 +00:00
ohif-bot
a9e0cc5518 chore(version): version.json [skip ci] 2024-06-28 13:23:13 +00:00
Leonardo Campos
2048b19484
feat(studyPrefetcher): Study Prefetcher (#4206) 2024-06-28 08:58:39 -04:00
ohif-bot
257cc477cd chore(version): Update package versions [skip ci] 2024-06-28 12:29:57 +00:00
ohif-bot
c9362726eb chore(version): version.json [skip ci] 2024-06-28 12:29:50 +00:00
Salim Kanoun
02eb256dc7
docs: Add prettier tailwind (#4269)
This fixes some docs issues/reformatting issues broken by changes to exclude unneeded dependencies.
2024-06-28 08:06:34 -04:00
ohif-bot
897de44856 chore(version): Update package versions [skip ci] 2024-06-27 16:52:54 +00:00
ohif-bot
cfb06e458b chore(version): version.json [skip ci] 2024-06-27 16:52:47 +00:00
Salim Kanoun
f660f8e970
fix(cli): missing js (#4268) 2024-06-27 12:38:43 -04:00
ohif-bot
bb2f5625fc chore(version): Update package versions [skip ci] 2024-06-27 13:29:38 +00:00
ohif-bot
a883f0de66 chore(version): version.json [skip ci] 2024-06-27 13:29:32 +00:00
Salim Kanoun
d09f8b5ba2
fix(cli): Fix the cli utilities which require full paths
reset .js extension in import (#4267)
2024-06-27 09:15:22 -04:00
ohif-bot
976003d665 chore(version): Update package versions [skip ci] 2024-06-26 16:40:54 +00:00
ohif-bot
8714f01f9d chore(version): version.json [skip ci] 2024-06-26 16:40:47 +00:00
Bill Wallace
fdf883ada8
fix(orthanc): Correct bulkdata URL handling and add configuration example PDF (#4262) 2024-06-26 12:26:00 -04:00
ohif-bot
bea56d4f66 chore(version): Update package versions [skip ci] 2024-06-26 02:30:49 +00:00
ohif-bot
6c38381ac2 chore(version): version.json [skip ci] 2024-06-26 02:30:42 +00:00
Ibrahim
75ef99d3b6
test(hyrdation): weekly tests PR (#4263) 2024-06-25 22:17:12 -04:00
ohif-bot
ff1d97f76e chore(version): Update package versions [skip ci] 2024-06-25 14:30:15 +00:00
ohif-bot
2155b0641d chore(version): version.json [skip ci] 2024-06-25 14:30:09 +00:00
Ibrahim
c9cc372581
test(improve-setup): sharding configuration, allow accessing cornerstone methods and events in tests, and add types (#4255) 2024-06-25 10:16:51 -04:00
ohif-bot
2bcdb52db9 chore(version): Update package versions [skip ci] 2024-06-21 21:35:35 +00:00
ohif-bot
16751ee141 chore(version): version.json [skip ci] 2024-06-21 21:35:28 +00:00
Alireza
71a1e561bf
chore(build): move exaca to dependencies (#4253) 2024-06-21 17:21:51 -04:00
Michael Andersen
aef00e91d6
fix(CustomViewportOverlay): pass accurate data to Custom Viewport Functions (#4224)
Co-authored-by: Michael Andersen <Michael.Andersen@rmp.uhn.ca>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2024-06-21 16:22:35 -04:00
Ibrahim
d5d821464a
feat(HP): Frame View HP (#4235) 2024-06-21 11:22:05 -04:00
Bill Wallace
9d0b729dc5
test: Unit test was failing (#4249) 2024-06-21 10:57:35 -04:00
Ibrahim
f3bbfff09b
fix(code): remove console log (#4248) 2024-06-21 10:04:02 -04:00
Bill Wallace
b6136acff6
chore(build): revert webpack upgrade to fix deploy (#4244) 2024-06-21 09:30:18 -04:00
Ibrahim
a433d406e2
feat(sort): custom series sort in study panel (#4214) 2024-06-20 16:58:59 -04:00
Ibrahim
6f93449149
fix(studybrowser): Differentiate recent and all in study panel based on a provided time period (#4242)
Co-authored-by: Salim Kanoun <salim.kanoun@gmail.com>
2024-06-20 08:53:56 -04:00
Bill Wallace
e462fd31f7
feat: customization service append and customize functionality should run once (#4238) 2024-06-19 16:31:59 -04:00
Bill Wallace
88575c6c09
fix: Allow the mode setup/creation to be async, and provide a few more values to extension/app config/mode setup. (#4016) 2024-06-19 09:32:00 -04:00
ohif-bot
01e200986c chore(version): Update package versions [skip ci] 2024-06-18 02:48:53 +00:00
ohif-bot
0ac7b2faaa chore(version): version.json [skip ci] 2024-06-18 02:48:45 +00:00
Bill Wallace
d8f6991dbe
fix: Use correct external URL for rendered responses with relative URI (#4236) 2024-06-17 22:36:03 -04:00
ohif-bot
6fc4390645 chore(version): Update package versions [skip ci] 2024-06-18 02:33:30 +00:00
ohif-bot
29d522f5f9 chore(version): version.json [skip ci] 2024-06-18 02:33:23 +00:00
Bill Wallace
2eab049d79
fix: Re-enable hpScale module (#4237) 2024-06-17 22:21:16 -04:00
ohif-bot
c7a2000873 chore(version): Update package versions [skip ci] 2024-06-17 14:29:37 +00:00
ohif-bot
bd6917a2ca chore(version): version.json [skip ci] 2024-06-17 14:29:30 +00:00
Alireza
097ef76655
fix(cli): version txt had a new line which it should not (#4233) 2024-06-17 10:17:38 -04:00
Michael Andersen
729efb6d76
fix(pdf-viewport): Allow Drag and Drop on PDF Viewport (#4225)
Co-authored-by: Michael Andersen <Michael.Andersen@rmp.uhn.ca>
2024-06-14 12:55:09 -04:00
ohif-bot
2f2f6b4c8d chore(version): Update package versions [skip ci] 2024-06-12 19:10:20 +00:00
ohif-bot
36a015a3ae chore(version): version.json [skip ci] 2024-06-12 19:10:12 +00:00
Joeycho
6971287460
fix(sr): rendering issue by running loadSR before updateSR (#4226) 2024-06-12 14:57:38 -04:00
ohif-bot
a97666ea4e chore(version): Update package versions [skip ci] 2024-06-12 15:52:26 +00:00
ohif-bot
5a4783cb1a chore(version): version.json [skip ci] 2024-06-12 15:52:19 +00:00
Simon Stemplinger
4e87317db6
docs: broken link to DICOM JSON minimum requirements on DICOM JSON documentation page (#4228) 2024-06-12 11:39:39 -04:00
ohif-bot
d5d004292e chore(version): Update package versions [skip ci] 2024-06-12 15:32:19 +00:00
ohif-bot
7ed75bc4e9 chore(version): version.json [skip ci] 2024-06-12 15:32:12 +00:00
Bill Wallace
55dcfa1f69
feat: Add customization merge, append or replace functionality (#3871) 2024-06-12 11:20:27 -04:00
ohif-bot
efa6df8bfb chore(version): Update package versions [skip ci] 2024-06-12 14:48:35 +00:00
ohif-bot
58bde5982f chore(version): version.json [skip ci] 2024-06-12 14:48:28 +00:00
Ibrahim
09853abc52
tests(increase-coverage): weekly tests PR (#4221) 2024-06-12 10:36:13 -04:00
ohif-bot
727088f3dc chore(version): Update package versions [skip ci] 2024-06-08 13:02:40 +00:00
ohif-bot
89a0fae244 chore(version): version.json [skip ci] 2024-06-08 13:02:33 +00:00
Alireza
4a3b37c6bb
docs(faq, migrations, orthanc): Add FAQ for dynamic measurements, migration guides, and fix orthanc docker (#4217) 2024-06-08 08:52:03 -04:00
ohif-bot
f044587b73 chore(version): Update package versions [skip ci] 2024-06-07 20:20:02 +00:00
ohif-bot
7bf9e6214f chore(version): version.json [skip ci] 2024-06-07 20:19:54 +00:00
Ibrahim
33f4c18f26
fix(window-level): move window level region to more tools menu (#4215) 2024-06-07 16:08:52 -04:00
Pedro H. Köhler
319b31d9a8
chore: add extra exports to cornerstone ext (#4216) 2024-06-07 16:02:36 -04:00
ohif-bot
14221eb78e chore(version): Update package versions [skip ci] 2024-06-05 17:21:51 +00:00
ohif-bot
bfb6fc5be7 chore(version): version.json [skip ci] 2024-06-05 17:21:43 +00:00
Ibrahim
9f8ad28d71
tests(increase-coverage): weekly tests PR (#4202) 2024-06-05 13:09:53 -04:00
ohif-bot
f93cdf326d chore(version): Update package versions [skip ci] 2024-06-05 16:52:29 +00:00
ohif-bot
6d54132386 chore(version): version.json [skip ci] 2024-06-05 16:52:21 +00:00
Igor Octaviano
649ffab4d9
fix: get direct url pixel data should be optional for video (#4152) 2024-06-05 12:39:59 -04:00
ohif-bot
35077f1f02 chore(version): Update package versions [skip ci] 2024-06-05 16:37:26 +00:00
ohif-bot
24fe144fa8 chore(version): version.json [skip ci] 2024-06-05 16:37:18 +00:00
Ibrahim
a29e94de80
fix(seg): maintain algorithm name and algorithm type when DICOM seg is exported or downloaded (#4203) 2024-06-05 12:26:17 -04:00
ohif-bot
d747c97be3 chore(version): Update package versions [skip ci] 2024-06-05 14:21:01 +00:00
ohif-bot
95c47ed16c chore(version): version.json [skip ci] 2024-06-05 14:20:53 +00:00
Ibrahim
430330f7e3
fix(hydration): Maintain the same slice that the user was on pre hydration in post hydration for SR and SEG. (#4200) 2024-06-05 10:07:53 -04:00
ohif-bot
ddc7559e16 chore(version): Update package versions [skip ci] 2024-06-05 14:02:25 +00:00
ohif-bot
abf9197b15 chore(version): version.json [skip ci] 2024-06-05 14:02:18 +00:00
Ibrahim
ab1a18af5a
feat(window-level-region): add window level region tool (#4127) 2024-06-05 09:50:22 -04:00
ohif-bot
4761bbf0c8 chore(version): Update package versions [skip ci] 2024-05-31 15:26:46 +00:00
ohif-bot
8a3367279a chore(version): version.json [skip ci] 2024-05-31 15:26:40 +00:00
Alireza
f85da32f34
fix(tmtv): crosshairs should not have viewport indicators (#4197) 2024-05-31 11:14:55 -04:00
ohif-bot
6e6ecd8709 chore(version): Update package versions [skip ci] 2024-05-30 18:37:49 +00:00
ohif-bot
e91827f002 chore(version): version.json [skip ci] 2024-05-30 18:37:41 +00:00
Alireza
93e760937f
fix(seg): should be able to navigate outside toolbox and come back later (#4196) 2024-05-30 14:25:38 -04:00
ohif-bot
5945887b22 chore(version): Update package versions [skip ci] 2024-05-30 17:18:43 +00:00
ohif-bot
b8b65eac77 chore(version): version.json [skip ci] 2024-05-30 17:18:36 +00:00
Alireza
2174026789
fix: segmentation creation and segmentation mode viewport rendering (#4193) 2024-05-30 13:07:37 -04:00
Alireza
d7aa386800
fix(docker): docker build was broken because of imports (#4192) 2024-05-30 13:01:14 -04:00
ohif-bot
af2237e7c7 chore(version): Update package versions [skip ci] 2024-05-30 16:02:17 +00:00
ohif-bot
4dfb68f9cc chore(version): version.json [skip ci] 2024-05-30 16:02:09 +00:00
Ibrahim
19b5b1c15c
fix(tmtv): side panel crashing when activeToolOptions is not an array (#4189) 2024-05-30 11:50:23 -04:00
ohif-bot
c02a4f2e26 chore(version): Update package versions [skip ci] 2024-05-30 15:22:57 +00:00
ohif-bot
756c2f88e6 chore(version): version.json [skip ci] 2024-05-30 15:22:50 +00:00
Ibrahim
e073d195fd
fix(queryparam): set all query params to lowercase by default (#4190) 2024-05-30 11:11:08 -04:00
ohif-bot
4ce7831ea7 chore(version): Update package versions [skip ci] 2024-05-29 16:07:46 +00:00
ohif-bot
fe4dfb63e4 chore(version): version.json [skip ci] 2024-05-29 16:07:38 +00:00
Ibrahim
731340d70a
fix(contour): set renderFill to false for contour (#4186) 2024-05-29 11:56:03 -04:00
ohif-bot
395894c6a9 chore(version): Update package versions [skip ci] 2024-05-29 15:50:43 +00:00
ohif-bot
8c25e7d557 chore(version): version.json [skip ci] 2024-05-29 15:50:36 +00:00
Bill Wallace
18ac08ed86
feat(hp): Add displayArea option for Hanging protocols and example with Mamo(#3808) 2024-05-29 11:31:09 -04:00
ohif-bot
cb30b97610 chore(version): Update package versions [skip ci] 2024-05-29 14:09:04 +00:00
ohif-bot
22d5e51751 chore(version): version.json [skip ci] 2024-05-29 14:08:56 +00:00
Alireza
75a71db7f8
fix(ultrasound): Upgrade cornerstone3D version to resolve coloring issues (#4181) 2024-05-29 09:57:50 -04:00
ohif-bot
c6a3ce4804 chore(version): Update package versions [skip ci] 2024-05-29 13:24:13 +00:00
ohif-bot
a389daff2f chore(version): version.json [skip ci] 2024-05-29 13:24:05 +00:00
Ibrahim
18686c2caf
feat(measurements): show untracked measurements in measurement panel under additional findings (#4160) 2024-05-29 09:12:39 -04:00
ohif-bot
07eb3c527d chore(version): Update package versions [skip ci] 2024-05-28 15:25:49 +00:00
ohif-bot
96860292ea chore(version): version.json [skip ci] 2024-05-28 15:25:39 +00:00
Ibrahim
7745c092bb
fix(rt): dont convert to volume for RTSTRUCT (#4157)
Co-authored-by: Alireza <ar.sedghi@gmail.com>
2024-05-28 11:13:14 -04:00
ohif-bot
b0af8ec553 chore(version): Update package versions [skip ci] 2024-05-27 18:41:10 +00:00
ohif-bot
2114ffff41 chore(version): version.json [skip ci] 2024-05-27 18:41:02 +00:00
Alireza
70f2c797f4
feat(ui): move to React 18 and base for using shadcn/ui (#4174)
Co-authored-by: IbrahimCSAE <ibrahim.mdev@gmail.com>
2024-05-27 14:30:25 -04:00
ohif-bot
72b63dcd6a chore(version): Update package versions [skip ci] 2024-05-24 16:34:01 +00:00
ohif-bot
268569e8c4 chore(version): version.json [skip ci] 2024-05-24 16:33:53 +00:00
Ibrahim
8960b89911
feat(types): typed app config (#4171) 2024-05-24 12:21:09 -04:00
ohif-bot
8c5b228d27 chore(version): Update package versions [skip ci] 2024-05-24 14:07:55 +00:00
ohif-bot
a547b47e2d chore(version): version.json [skip ci] 2024-05-24 14:07:45 +00:00
dependabot[bot]
6ca158e4f6
chore(deps): bump axios from 0.28.0 to 0.28.1 in the npm_and_yarn group across 1 directory (#4173)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-24 09:51:12 -04:00
ohif-bot
8c6ae839ef chore(version): Update package versions [skip ci] 2024-05-24 13:35:33 +00:00
ohif-bot
1ffe71d52a chore(version): version.json [skip ci] 2024-05-24 13:35:25 +00:00
dependabot[bot]
628132eb86
chore(deps): bump axios from 0.25.0 to 0.28.0 in the npm_and_yarn group across 1 directory (#4170)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-24 09:24:04 -04:00
ohif-bot
9a8ee2b3fb chore(version): Update package versions [skip ci] 2024-05-24 12:48:05 +00:00
ohif-bot
023fde9b26 chore(version): version.json [skip ci] 2024-05-24 12:47:58 +00:00
dependabot[bot]
2f2df1826b
chore(deps): bump the npm_and_yarn group across 2 directories with 2 updates (#4169)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-24 08:36:16 -04:00
ohif-bot
590a5a81d7 chore(version): Update package versions [skip ci] 2024-05-23 20:30:46 +00:00
ohif-bot
c0ff0698f1 chore(version): version.json [skip ci] 2024-05-23 20:30:38 +00:00
Ibrahim
73d9e99d5d
fix(crosshairs): reset angle, position, and slabthickness for crosshairs when reset viewport tool is used (#4113)
Co-authored-by: Alireza <ar.sedghi@gmail.com>
2024-05-23 16:18:44 -04:00
ohif-bot
1124c409e9 chore(version): Update package versions [skip ci] 2024-05-23 17:40:58 +00:00
ohif-bot
a394f4cea7 chore(version): version.json [skip ci] 2024-05-23 17:40:50 +00:00
Alireza
34c7d72142
fix: dicom json for orthanc by Update package versions for @cornerstonejs dependencies (#4165) 2024-05-23 13:28:31 -04:00
ohif-bot
7b24cc5038 chore(version): Update package versions [skip ci] 2024-05-22 16:00:27 +00:00
ohif-bot
5da97511e3 chore(version): version.json [skip ci] 2024-05-22 16:00:18 +00:00
Ibrahim
4fcee5d449
test(playwright): move readme, add video tutorial (#4156) 2024-05-22 11:48:00 -04:00
ohif-bot
24291c3a11 chore(version): Update package versions [skip ci] 2024-05-21 23:53:08 +00:00
ohif-bot
c2132beced chore(version): version.json [skip ci] 2024-05-21 23:52:58 +00:00
Michael Andersen
b124c91d8f
fix(HangingProtocol): fix hp when unsupported series load first (#4145)
Co-authored-by: Michael Andersen <Michael.Andersen@rmp.uhn.ca>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2024-05-21 19:39:44 -04:00
ohif-bot
bf3acd076d chore(version): Update package versions [skip ci] 2024-05-21 21:35:15 +00:00
ohif-bot
925d18b463 chore(version): version.json [skip ci] 2024-05-21 21:35:07 +00:00
Ibrahim
5903b0749a
feat(rt): allow rendering of points in RT Struct (#4128) 2024-05-21 17:23:18 -04:00
ohif-bot
ebe39cb8e6 chore(version): Update package versions [skip ci] 2024-05-21 20:56:32 +00:00
ohif-bot
de628ff814 chore(version): version.json [skip ci] 2024-05-21 20:56:23 +00:00
Alireza
29944c8512
fix(segmentation): Address issue where segmentation creation failed on layout change (#4153) 2024-05-21 16:43:47 -04:00
ohif-bot
3ea60c3044 chore(version): Update package versions [skip ci] 2024-05-21 19:02:05 +00:00
ohif-bot
8ecf3424d1 chore(version): version.json [skip ci] 2024-05-21 19:01:57 +00:00
Ibrahim
fe1a706446
feat(test): Playwright testing integration (#4146) 2024-05-21 14:48:35 -04:00
ohif-bot
856cd17531 chore(version): Update package versions [skip ci] 2024-05-21 15:34:50 +00:00
ohif-bot
3d27d8079a chore(version): version.json [skip ci] 2024-05-21 15:34:40 +00:00
Alireza
70bb6c4626
fix(stack-invalidation): Resolve stack invalidation if metadata invalidated (#4147) 2024-05-21 11:21:41 -04:00
ohif-bot
d4b09738fb chore(version): Update package versions [skip ci] 2024-05-17 17:20:55 +00:00
ohif-bot
533cb26d53 chore(version): version.json [skip ci] 2024-05-17 17:20:46 +00:00
Ibrahim
dce1e7d423
fix(select): utilize react portals for select component (#4144) 2024-05-17 13:08:03 -04:00
ohif-bot
0d81ecf166 chore(version): Update package versions [skip ci] 2024-05-16 19:16:03 +00:00
ohif-bot
de06a98312 chore(version): version.json [skip ci] 2024-05-16 19:15:55 +00:00
Alireza
fb91c6da69
chore: Update CircleCI workflow to include approval step before NPM publish for release branches (#4138) 2024-05-16 15:03:45 -04:00
ohif-bot
391ff2243d chore(version): Update package versions [skip ci] 2024-05-15 15:51:44 +00:00
ohif-bot
3227ec1ddc chore(version): version.json [skip ci] 2024-05-15 15:51:35 +00:00
Ibrahim
8d5c676a5e
fix(tmtv): threshold was crashing the side panel (#4119) 2024-05-15 11:39:03 -04:00
ohif-bot
bbd41ac3dd chore(version): Update package versions [skip ci] 2024-05-15 13:28:59 +00:00
ohif-bot
e096aa8b1a chore(version): version.json [skip ci] 2024-05-15 13:28:50 +00:00
Igor Octaviano
6bba2e70f8
fix: 🐛 Overflow scroll list menu based on screen hight (#4123) 2024-05-15 09:16:02 -04:00
ohif-bot
d5759d6c06 chore(version): Update package versions [skip ci] 2024-05-14 17:41:13 +00:00
ohif-bot
a289c10eb2 chore(version): version.json [skip ci] 2024-05-14 17:41:04 +00:00
Ibrahim
997a1afd7c
test(visual-regression): Add percy tests and improve coverage (#4065) 2024-05-14 13:27:21 -04:00
ohif-bot
953d9eed9c chore(version): Update package versions [skip ci] 2024-05-14 17:10:40 +00:00
ohif-bot
c86a141119 chore(version): version.json [skip ci] 2024-05-14 17:10:30 +00:00
Sofien-Sellami
8fa339f296
fix(auth): bind handleUnauthenticated to correct context (#4120) 2024-05-14 12:56:58 -04:00
Igor Octaviano
2de102c73c
fix(DicomJSONDataSource): Fix series filtering (#4092) 2024-05-09 16:10:56 -04:00
ohif-bot
e341ebe9d6 chore(version): Update package versions [skip ci] 2024-05-08 16:25:20 +00:00
ohif-bot
2046a16dad chore(version): version.json [skip ci] 2024-05-08 16:25:13 +00:00
Ibrahim
374065bc3b
feat(typings): Enhance typing support with withAppTypes and custom services throughout OHIF (#4090) 2024-05-08 12:12:49 -04:00
ohif-bot
b2cd0172d6 chore(version): Update package versions [skip ci] 2024-05-06 19:07:46 +00:00
ohif-bot
cf8a99fbd3 chore(version): version.json [skip ci] 2024-05-06 19:07:38 +00:00
Ibrahim
730f434910
fix(bugs): enhancements and bugs in several areas (#4086) 2024-05-06 14:55:32 -04:00
ohif-bot
01fe7fab3d chore(version): Update package versions [skip ci] 2024-05-06 18:38:31 +00:00
ohif-bot
4ca8595095 chore(version): version.json [skip ci] 2024-05-06 18:38:23 +00:00
Ibrahim
0156bc426f
fix(rt): enhanced RT support, utilize SVGs for rendering. (#4074) 2024-05-06 14:26:11 -04:00
ohif-bot
8c304718ad chore(version): Update package versions [skip ci] 2024-04-29 18:28:48 +00:00
ohif-bot
000224ce1a chore(version): version.json [skip ci] 2024-04-29 18:28:39 +00:00
Alireza
f95255e8cd
chore(version): move to the next beta version [BUMP BETA] (#4073) 2024-04-29 14:16:17 -04:00
ohif-bot
351244e8f3 chore(version): Update package versions [skip ci] 2024-04-29 17:12:22 +00:00
ohif-bot
e4749f722c chore(version): version.json [skip ci] 2024-04-29 17:12:15 +00:00
Alireza
e4b6478952
chore(version): move to the next beta version [BUMP BETA] (#4072) 2024-04-29 13:00:14 -04:00
ohif-bot
6a8f4b9f38 chore(version): Update package versions [skip ci] 2024-04-29 16:09:24 +00:00
ohif-bot
956fff4e5b chore(version): version.json [skip ci] 2024-04-29 16:09:14 +00:00
Alireza
f1a736d193
fix(toolbox): Preserve user-specified tool state and streamline command execution (#4063) 2024-04-29 11:58:03 -04:00
ohif-bot
4784638717 chore(version): Update package versions [skip ci] 2024-04-28 02:01:58 +00:00
ohif-bot
49e82f4756 chore(version): version.json [skip ci] 2024-04-28 02:01:50 +00:00
Ibrahim
c09311d3b7
fix(bugs): fix patient header for doc, track ball rotate resize observer and add segmentation button not being enabled on viewport data change (#4068) 2024-04-27 21:50:28 -04:00
ohif-bot
b4ed80d99b chore(version): Update package versions [skip ci] 2024-04-25 15:57:15 +00:00
ohif-bot
c87081d924 chore(version): version.json [skip ci] 2024-04-25 15:57:08 +00:00
Ibrahim
f09dfaf911
docs: updates images (#4064) 2024-04-25 11:45:50 -04:00
ohif-bot
11a4ba3c99 chore(version): Update package versions [skip ci] 2024-04-22 19:20:46 +00:00
ohif-bot
56ccb4f7e0 chore(version): version.json [skip ci] 2024-04-22 19:20:37 +00:00
Mateus Freira dos Santos
6ebd2cc7cb
fix(viewport-sync): Enable re-sync image slices in a different position when needed (#3984) 2024-04-22 15:08:03 -04:00
ohif-bot
25c01fc66c chore(version): Update package versions [skip ci] 2024-04-22 18:56:10 +00:00
ohif-bot
2ea882e299 chore(version): version.json [skip ci] 2024-04-22 18:56:02 +00:00
Alireza
52a0c59294
fix(viewport-webworker-segmentation): Resolve issues with viewport detection, webworker termination, and segmentation panel layout change (#4059) 2024-04-22 14:43:26 -04:00
Mateus Freira dos Santos
3ec7e51216
fix(vewport): Add missing blendmodes from cornerstonejs (#4055) 2024-04-22 14:33:52 -04:00
ohif-bot
1b366c92ee chore(version): Update package versions [skip ci] 2024-04-22 14:06:09 +00:00
ohif-bot
13d67d90fc chore(version): version.json [skip ci] 2024-04-22 14:06:01 +00:00
Bill Wallace
f0ed3fd7b9
fix(hp): Fails to display any layouts in the layout selector if first layout has multiple stages (#4058) 2024-04-22 09:53:10 -04:00
ohif-bot
65d419dd52 chore(version): Update package versions [skip ci] 2024-04-19 19:23:01 +00:00
ohif-bot
4349fc1085 chore(version): version.json [skip ci] 2024-04-19 19:22:53 +00:00
Alireza
8192e348ec
feat(tmtv-mode): Add Brush tools and move SUV peak calculation to web worker (#4053) 2024-04-19 15:11:31 -04:00
ohif-bot
8c5ab942b9 chore(version): Update package versions [skip ci] 2024-04-19 03:32:31 +00:00
ohif-bot
ab19d9c0a2 chore(version): version.json [skip ci] 2024-04-19 03:32:23 +00:00
Alireza
d250d04580
fix(layouts): and fix thumbnail in touch and update migration guide for 3.8 release (#4052) 2024-04-18 23:21:02 -04:00
ohif-bot
28bc8914a8 chore(version): Update package versions [skip ci] 2024-04-18 15:07:19 +00:00
ohif-bot
3952d465dc chore(version): version.json [skip ci] 2024-04-18 15:07:08 +00:00
Pavel Klochkov
1a013909a1
docs(link): Fix wrong link for the components library in the architecture.md (#4045) 2024-04-18 10:53:21 -04:00
ohif-bot
8f42baf36e chore(version): Update package versions [skip ci] 2024-04-18 02:11:12 +00:00
ohif-bot
2633ef7323 chore(version): version.json [skip ci] 2024-04-18 02:11:05 +00:00
Alireza
da7c1a5d8c
fix(bugs): and replace seriesInstanceUID and seriesInstanceUIDs URL with seriesInstanceUIDs (#4049) 2024-04-17 21:59:47 -04:00
ohif-bot
058da93863 chore(version): Update package versions [skip ci] 2024-04-18 01:58:25 +00:00
ohif-bot
bc819409b3 chore(version): version.json [skip ci] 2024-04-18 01:58:17 +00:00
Ibrahim
170bb96983
fix(bugs): enhancements and bug fixes - final (#4048) 2024-04-17 21:47:09 -04:00
ohif-bot
c4e6556259 chore(version): Update package versions [skip ci] 2024-04-17 18:54:51 +00:00
ohif-bot
ab61cc9b1f chore(version): version.json [skip ci] 2024-04-17 18:54:41 +00:00
Ibrahim
3754c224b4
fix(bugs): enhancements and bug fixes - more (#4043) 2024-04-17 14:42:40 -04:00
ohif-bot
d3cdfd8506 chore(version): Update package versions [skip ci] 2024-04-16 15:17:07 +00:00
ohif-bot
aa572daa2c chore(version): version.json [skip ci] 2024-04-16 15:16:59 +00:00
Alireza
f99a0bfb31
fix(viewport): Reset viewport state and fix CINE looping, thumbnail resolution, and dynamic tool settings (#4037) 2024-04-16 11:04:48 -04:00
ohif-bot
a6c6fff43a chore(version): Update package versions [skip ci] 2024-04-16 13:13:50 +00:00
ohif-bot
e687384933 chore(version): version.json [skip ci] 2024-04-16 13:13:42 +00:00
Ibrahim
e80fc6f477
fix(bugs): enhancements and bug fixes (#4036) 2024-04-16 09:01:06 -04:00
ohif-bot
41a8d105f1 chore(version): Update package versions [skip ci] 2024-04-10 17:55:21 +00:00
ohif-bot
60b2f69334 chore(version): version.json [skip ci] 2024-04-10 17:55:12 +00:00
Alireza
df49a653be
feat(SM): remove SM measurements from measurement panel (#4022) 2024-04-10 13:44:25 -04:00
ohif-bot
77693ddef4 chore(version): Update package versions [skip ci] 2024-04-10 15:45:03 +00:00
ohif-bot
6a757f69d8 chore(version): version.json [skip ci] 2024-04-10 15:44:55 +00:00
Ibrahim
2b83393f91
fix(general): enhancements and bug fixes (#4018) 2024-04-10 11:34:13 -04:00
ohif-bot
ac0e1c0a2c chore(version): Update package versions [skip ci] 2024-04-10 15:06:15 +00:00
ohif-bot
b0b65c582d chore(version): version.json [skip ci] 2024-04-10 15:06:06 +00:00
Igor Octaviano
4f99244d86
fix(dicom-video): Update get direct func for dicom json to use url if present and fix config argument (#4017) 2024-04-10 10:55:19 -04:00
Mohannad Hussain
be9bb06565
docker: Enabled Orthanc's DIMSE port for easier loading of DICOM studies in OpenResty-Orthanc Recipe (#3917) 2024-04-10 10:46:27 -04:00
ohif-bot
c7e53bdbf8 chore(version): Update package versions [skip ci] 2024-04-10 14:43:05 +00:00
ohif-bot
7c3d67c2a8 chore(version): version.json [skip ci] 2024-04-10 14:42:57 +00:00
Jorge Lopes
e9c30a108e
fix(MetaDataProvider): Fix tag in GeneralImageModule (#4000) 2024-04-10 10:31:04 -04:00
ohif-bot
603d5cc53a chore(version): Update package versions [skip ci] 2024-04-10 14:27:17 +00:00
ohif-bot
5cc693d26c chore(version): version.json [skip ci] 2024-04-10 14:27:08 +00:00
Bill Wallace
7fac49b449
fix: Microscopy bulkdata and image retrieve (#3894) 2024-04-10 10:16:09 -04:00
ohif-bot
7014e6ca4a chore(version): Update package versions [skip ci] 2024-04-10 04:15:43 +00:00
ohif-bot
87b68bba4a chore(version): version.json [skip ci] 2024-04-10 04:15:35 +00:00
Leonardo Campos
d57e8bc157
feat(4D): Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode (#3664)
Co-authored-by: Alireza <ar.sedghi@gmail.com>
Co-authored-by: Neil <neil.a.macphee@gmail.com>
2024-04-09 23:57:34 -04:00
ohif-bot
dc0b183dd4 chore(version): Update package versions [skip ci] 2024-04-08 13:39:28 +00:00
ohif-bot
06920ab927 chore(version): version.json [skip ci] 2024-04-08 13:39:21 +00:00
Kay Park
dc37802ec1
fix : Keycloak docker image source modification (#4015) 2024-04-08 09:28:51 -04:00
ohif-bot
894a227978 chore(version): Update package versions [skip ci] 2024-04-05 10:00:59 +00:00
ohif-bot
1c9fee1bec chore(version): version.json [skip ci] 2024-04-05 10:00:52 +00:00
Igor Octaviano
5645ac1b27
fix(cornerstone-dicom-sr): Freehand SR hydration support (#3996)
Co-authored-by: Ibrahim <93064150+IbrahimCSAE@users.noreply.github.com>
Co-authored-by: IbrahimCSAE <ibrahim.mdev@gmail.com>
2024-04-05 05:42:43 -04:00
ohif-bot
6e5892d202 chore(version): Update package versions [skip ci] 2024-04-05 03:10:27 +00:00
ohif-bot
9d8997ad84 chore(version): version.json [skip ci] 2024-04-05 03:10:20 +00:00
Ibrahim
cea27d438d
feat(advanced-roi-tools): new tools and icon updates and overlay bug fixes (#4014) 2024-04-04 23:00:11 -04:00
ohif-bot
78fd8cce86 chore(version): Update package versions [skip ci] 2024-04-05 02:53:53 +00:00
ohif-bot
f7c9a5cb64 chore(version): version.json [skip ci] 2024-04-05 02:53:45 +00:00
nithin-trenser
56b1eae635
feat(measurement): Add support measurement label autocompletion (#3855) 2024-04-04 22:42:48 -04:00
ohif-bot
807afb8ce5 chore(version): Update package versions [skip ci] 2024-04-03 13:04:29 +00:00
ohif-bot
5f494598bb chore(version): version.json [skip ci] 2024-04-03 13:04:21 +00:00
Ibrahim
fa38e6a07a
fix(presentation-state): Iterate over map properly to restore the presentation state (#4013) 2024-04-03 08:53:29 -04:00
ohif-bot
d8f66856cc chore(version): Update package versions [skip ci] 2024-04-03 03:44:14 +00:00
ohif-bot
9c39689451 chore(version): version.json [skip ci] 2024-04-03 03:44:05 +00:00
Ibrahim
9f3235ff09
feat(segmentation): Enhanced segmentation panel design for TMTV (#3988)
Co-authored-by: Alireza <ar.sedghi@gmail.com>
2024-04-02 23:33:04 -04:00
ohif-bot
e8e209291c chore(version): Update package versions [skip ci] 2024-04-02 13:46:18 +00:00
ohif-bot
bc71861619 chore(version): version.json [skip ci] 2024-04-02 13:46:10 +00:00
Ibrahim
b7f90e3951
feat(ViewportActionMenu): window level per viewport / new patient info / colorbars/ 3D presets and 3D volume rendering (#3963)
Co-authored-by: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com>
2024-04-02 09:35:30 -04:00
ohif-bot
07301fc020 chore(version): Update package versions [skip ci] 2024-03-28 20:56:04 +00:00
ohif-bot
1203477dd4 chore(version): version.json [skip ci] 2024-03-28 20:55:57 +00:00
Alireza
158a181670
fix(new layout): address black screen bugs (#4008) 2024-03-28 16:45:11 -04:00
ohif-bot
aac3546bed chore(version): Update package versions [skip ci] 2024-03-28 14:52:21 +00:00
ohif-bot
1256a4d565 chore(version): version.json [skip ci] 2024-03-28 14:52:11 +00:00
Ibrahim
617043fe0d
feat(layout): new layout selector with 3D volume rendering (#3923) 2024-03-28 10:40:32 -04:00
ohif-bot
6f610b09e1 chore(version): Update package versions [skip ci] 2024-03-27 20:12:57 +00:00
ohif-bot
a2e320f9f8 chore(version): version.json [skip ci] 2024-03-27 20:12:47 +00:00
Alireza
566b25a544
feat(toolbar): new Toolbar to enable reactive state synchronization (#3983) 2024-03-27 16:01:32 -04:00
ohif-bot
79d5c36bda chore(version): Update package versions [skip ci] 2024-03-25 15:44:13 +00:00
ohif-bot
f47a94317d chore(version): version.json [skip ci] 2024-03-25 15:44:04 +00:00
Ibrahim
45b68e841d
feat(worklist): new investigational use text (#3999) 2024-03-25 11:33:24 -04:00
ohif-bot
d70aae3233 chore(version): Update package versions [skip ci] 2024-03-19 00:37:56 +00:00
ohif-bot
345b137bec chore(version): version.json [skip ci] 2024-03-19 00:37:48 +00:00
Ibrahim
9bcd1ae6f5
feat(worklist): New worklist buttons and tooltips (#3989) 2024-03-18 20:27:12 -04:00
ohif-bot
6b79dff5c1 chore(version): Update package versions [skip ci] 2024-03-18 18:38:23 +00:00
ohif-bot
88859f75d5 chore(version): version.json [skip ci] 2024-03-18 18:38:16 +00:00
Alireza
feed2304c1
fix(SR display): and the token based navigation (#3995) 2024-03-18 14:27:17 -04:00
ohif-bot
08815909c7 chore(version): Update package versions [skip ci] 2024-03-15 13:52:45 +00:00
ohif-bot
ed2234a67c chore(version): version.json [skip ci] 2024-03-15 13:52:34 +00:00
Pedro H. Köhler
f7fe91c5f6
feat(delete measurement): icon for measurement table (#3775) 2024-03-15 09:35:29 -04:00
ohif-bot
21ec6860f2 chore(version): Update package versions [skip ci] 2024-03-08 13:38:48 +00:00
ohif-bot
ac474b7f8f chore(version): version.json [skip ci] 2024-03-08 13:38:41 +00:00
EricB
e485d68fd4
fix(cli): mode creation template (#3876) (#3981) 2024-03-08 08:27:37 -05:00
ohif-bot
5089229ff9 chore(version): Update package versions [skip ci] 2024-03-05 16:15:56 +00:00
ohif-bot
df09176d63 chore(version): version.json [skip ci] 2024-03-05 16:15:48 +00:00
EricB
bb603bd1f8
docs: Typo (#3975) 2024-03-05 11:04:28 -05:00
ohif-bot
82a4a7d377 chore(version): Update package versions [skip ci] 2024-02-28 17:25:27 +00:00
ohif-bot
c27fa9c802 chore(version): version.json [skip ci] 2024-02-28 17:25:19 +00:00
EricB
4cdfdae814
fix(docs): Minor typos in hpModule.md (#3962) 2024-02-28 12:13:46 -05:00
ohif-bot
596340803a chore(version): Update package versions [skip ci] 2024-02-22 19:54:20 +00:00
ohif-bot
ff4e17f5c2 chore(version): version.json [skip ci] 2024-02-22 19:54:11 +00:00
Bill Wallace
21e8a2bd0b
fix(demo): Deploy issue (#3951) 2024-02-22 14:42:46 -05:00
ohif-bot
2a442e30eb chore(version): Update package versions [skip ci] 2024-02-21 18:59:56 +00:00
ohif-bot
8e8a66bd29 chore(version): version.json [skip ci] 2024-02-21 18:59:49 +00:00
Alireza
b3a0faf5f5
feat(resize): Optimize resizing process and maintain zoom level (#3889) 2024-02-21 13:49:23 -05:00
ohif-bot
a2a0090eeb chore(version): Update package versions [skip ci] 2024-02-14 14:02:25 +00:00
ohif-bot
ea552027c5 chore(version): version.json [skip ci] 2024-02-14 14:02:17 +00:00
Ibrahim
0eac386a31
feat(errorboundary): format stack trace properly (#3931) 2024-02-14 08:51:17 -05:00
ohif-bot
40b590d75a chore(version): Update package versions [skip ci] 2024-02-05 19:01:43 +00:00
ohif-bot
01df1763ce chore(version): version.json [skip ci] 2024-02-05 19:01:34 +00:00
Igor Octaviano
5bba98ed84
fix: 🐛 Sort merge results based on default data source (input) (#3903) 2024-02-05 13:46:47 -05:00
ohif-bot
16785936d9 chore(version): Update package versions [skip ci] 2024-01-22 20:52:46 +00:00
ohif-bot
3deb73d642 chore(version): version.json [skip ci] 2024-01-22 20:52:38 +00:00
m00n620
ef46b5a704
fix toggleHpTools to support split primary button (#3900)
Fixes a small bug in toggling buttons with hanging protocols.
2024-01-22 15:42:51 -05:00
ohif-bot
ed2bf23cd2 chore(version): Update package versions [skip ci] 2024-01-22 15:07:51 +00:00
ohif-bot
2ff2f3f34d chore(version): version.json [skip ci] 2024-01-22 15:07:43 +00:00
Patrick Wespi
a47aeb8bd7
fix: catch errors in getPTImageIdInstanceMetadata (#3897) 2024-01-22 09:58:22 -05:00
ohif-bot
94f40192f5 chore(version): Update package versions [skip ci] 2024-01-22 14:55:27 +00:00
ohif-bot
1c43aa791a chore(version): version.json [skip ci] 2024-01-22 14:55:17 +00:00
Alireza
e4a116b074
fix(viewport-sync): remember synced viewports bw stack and volume and RENAME StackImageSync to ImageSliceSync (#3849) 2024-01-22 09:44:35 -05:00
ohif-bot
2460d28afc chore(version): Update package versions [skip ci] 2024-01-19 13:30:55 +00:00
ohif-bot
4a958b8989 chore(version): version.json [skip ci] 2024-01-19 13:30:47 +00:00
Pedro H. Köhler
31b837fa90
fix: is same orientaiton (#3905) 2024-01-19 08:21:22 -05:00
ohif-bot
9bb00d71fa chore(version): Update package versions [skip ci] 2024-01-17 16:01:31 +00:00
ohif-bot
40bbe33a9d chore(version): version.json [skip ci] 2024-01-17 16:01:24 +00:00
Igor Octaviano
911d672835
fix: 🐛 Check merge key for merge data source (#3901) 2024-01-17 10:51:49 -05:00
ohif-bot
9c553fded4 chore(version): Update package versions [skip ci] 2024-01-12 16:10:06 +00:00
ohif-bot
144dd39393 chore(version): version.json [skip ci] 2024-01-12 16:09:58 +00:00
AbishekBista9
df2f50748e
docs: Update architecture.md (#3891) 2024-01-12 11:00:17 -05:00
ohif-bot
83a1523408 chore(version): Update package versions [skip ci] 2024-01-12 13:58:08 +00:00
ohif-bot
5a62a983e5 chore(version): version.json [skip ci] 2024-01-12 13:57:58 +00:00
Bill Wallace
d00a86b022
fix: Update CS3D to fix second render (#3892) 2024-01-12 08:48:15 -05:00
ohif-bot
710a2dca72 chore(version): Update package versions [skip ci] 2024-01-09 19:31:20 +00:00
ohif-bot
9100b1f02e chore(version): version.json [skip ci] 2024-01-09 19:31:10 +00:00
Igor Octaviano
0049f4c030
feat(hp): enable OHIF to run with partial metadata for large studies at the cost of less effective hanging protocol (#3804)
Co-authored-by: rodrigobasilio2022 <rodrigo.basilio@radicalimaging.com>
Co-authored-by: rodrigobasilio2022 <114958722+rodrigobasilio2022@users.noreply.github.com>
2024-01-09 14:22:00 -05:00
ohif-bot
b5cdf88a57 chore(version): Update package versions [skip ci] 2024-01-09 17:45:39 +00:00
ohif-bot
c793df727b chore(version): version.json [skip ci] 2024-01-09 17:45:30 +00:00
Alireza
1456a493d6
feat(transferSyntax): prefer server transcoded transfer syntax for all images (#3883) 2024-01-09 12:36:29 -05:00
ohif-bot
7c551f5043 chore(version): Update package versions [skip ci] 2024-01-09 15:24:36 +00:00
ohif-bot
0b2c2a235f chore(version): version.json [skip ci] 2024-01-09 15:24:28 +00:00
Alireza
b1efe40aa1
fix(segmentation): upgrade cs3d to fix various segmentation bugs (#3885) 2024-01-09 10:15:56 -05:00
ohif-bot
a8a0bdb2df chore(version): Update package versions [skip ci] 2024-01-08 19:34:59 +00:00
ohif-bot
6878c1a264 chore(version): version.json [skip ci] 2024-01-08 19:34:49 +00:00
AbishekBista9
d181eb4fdc
docs: Update user-account-control.md (#3877) 2024-01-08 14:24:42 -05:00
ohif-bot
fd809e4a0b chore(version): Update package versions [skip ci] 2024-01-08 19:21:13 +00:00
ohif-bot
4c29670d76 chore(version): version.json [skip ci] 2024-01-08 19:21:04 +00:00
Igor Octaviano
f58725ce40
feat: Add on mode init hook (#3882) 2024-01-08 14:12:26 -05:00
ohif-bot
5a1cb842f0 chore(version): Update package versions [skip ci] 2024-01-08 19:08:04 +00:00
ohif-bot
c5bd79552a chore(version): version.json [skip ci] 2024-01-08 19:07:56 +00:00
Sofien-Sellami
61bf22c6f8
feat(ui): sidePanel expandedWidth (#3728) 2024-01-08 13:59:20 -05:00
ohif-bot
3d98548072 chore(version): Update package versions [skip ci] 2024-01-08 18:53:43 +00:00
ohif-bot
bf9770a55c chore(version): version.json [skip ci] 2024-01-08 18:53:35 +00:00
Pedro H. Köhler
2049c0936c
feat: improve disableEditing flag (#3875)
Co-authored-by: Igor Octaviano <igoroctaviano@gmail.com>
2024-01-08 13:45:24 -05:00
ohif-bot
7d5607073d chore(version): Update package versions [skip ci] 2024-01-08 18:24:06 +00:00
ohif-bot
1b6910bf76 chore(version): version.json [skip ci] 2024-01-08 18:23:58 +00:00
Bill Wallace
98650302c7
fix: PDF display request in v3 (#3878)
Co-authored-by: Alireza <ar.sedghi@gmail.com>
2024-01-08 13:15:54 -05:00
Salim Kanoun
bf846c94c3
fix: convert radian to degree value for mip rotation (#3881) 2024-01-08 13:09:22 -05:00
ohif-bot
b5dc9047ba chore(version): Update package versions [skip ci] 2024-01-08 17:37:17 +00:00
ohif-bot
636d8b0458 chore(version): version.json [skip ci] 2024-01-08 17:37:08 +00:00
Celian-abd
e8858f3eb5
fix: colormap for stack viewports via HangingProtocol (#3866) 2024-01-08 12:28:22 -05:00
ohif-bot
eb7c950d7e chore(version): Update package versions [skip ci] 2023-12-15 02:56:03 +00:00
ohif-bot
c6214d66b9 chore(version): version.json [skip ci] 2023-12-15 02:55:55 +00:00
Alireza
0eb502aaf0
chore(version): upgrade cornerstone3D versions to fix orientation (#3854) 2023-12-14 21:47:15 -05:00
ohif-bot
44a5a24d4f chore(version): Update package versions [skip ci] 2023-12-14 03:48:22 +00:00
ohif-bot
b0bf5dc780 chore(version): version.json [skip ci] 2023-12-14 03:48:15 +00:00
Alireza
5915fada83
chore(version): upgrade cornerstone3D versions (#3853) 2023-12-13 22:39:41 -05:00
ohif-bot
2fa335c6d9 chore(version): Update package versions [skip ci] 2023-12-13 21:37:11 +00:00
ohif-bot
de4ad88a09 chore(version): version.json [skip ci] 2023-12-13 21:37:03 +00:00
Sofien-Sellami
6ca13c0a4c
fix(icon-style): Ensure consistent icon dimensions (#3727) 2023-12-13 16:28:20 -05:00
Pedro H. Köhler
0177b625ba
feat(overlay): add inline binary overlays (#3852) 2023-12-13 16:18:49 -05:00
ohif-bot
c4064acfbc chore(version): Update package versions [skip ci] 2023-12-13 20:27:22 +00:00
ohif-bot
7a05d169ef chore(version): version.json [skip ci] 2023-12-13 20:27:14 +00:00
dxlin
13d0c883f8
docs: Update HangingProtocolService.md doc sameAs example to contain constr… (#3765) 2023-12-13 15:18:15 -05:00
ohif-bot
c45f60dce2 chore(version): Update package versions [skip ci] 2023-12-13 20:11:48 +00:00
ohif-bot
7bb2713c5c chore(version): version.json [skip ci] 2023-12-13 20:11:39 +00:00
Celian-abd
97cb1f94e1
fix(dicom-seg) : Fix the missing color tag when loading Dicom-Seg (#3822)
Co-authored-by: Alireza <ar.sedghi@gmail.com>
2023-12-13 15:03:09 -05:00
ohif-bot
f99645f3a1 chore(version): Update package versions [skip ci] 2023-12-13 19:55:36 +00:00
ohif-bot
ae16c7f972 chore(version): version.json [skip ci] 2023-12-13 19:55:28 +00:00
Salim Kanoun
9c6e1cd305
Fix(HPService): custom image load performed is now reset to false on HP exit (#3809) 2023-12-13 14:47:12 -05:00
ohif-bot
7f0ca857fa chore(version): Update package versions [skip ci] 2023-12-13 19:29:55 +00:00
ohif-bot
920256d3a4 chore(version): version.json [skip ci] 2023-12-13 19:29:48 +00:00
Pedro H. Köhler
e1f55e65f2
feat(customizationService): Enable saving and loading of private tags in SRs (#3842) 2023-12-13 14:21:46 -05:00
ohif-bot
d1c07d90f0 chore(version): Update package versions [skip ci] 2023-12-13 15:29:16 +00:00
ohif-bot
b1a04ecac3 chore(version): version.json [skip ci] 2023-12-13 15:29:09 +00:00
Sofien-Sellami
f707b4ebc9
feat(config): Add activateViewportBeforeInteraction parameter for viewport interaction customization (#3847) 2023-12-13 10:17:48 -05:00
Pedro H. Köhler
805c53270f
fix: address and improve system vulnerabilities (#3851) 2023-12-13 09:25:41 -05:00
Pavel
d14a8f0199
feat(i18n): enhanced i18n support (#3761) 2023-12-11 09:43:58 -05:00
ohif-bot
5a5c4f58af chore(version): Update package versions [skip ci] 2023-12-08 14:35:30 +00:00
ohif-bot
6e5d8b691e chore(version): version.json [skip ci] 2023-12-08 14:35:23 +00:00
Joe Boccanfuso
59576d695d
feat(HP): Added new 3D hanging protocols to be used in the new layout selector (#3844) 2023-12-08 09:25:57 -05:00
ohif-bot
78d4bea04d chore(version): Update package versions [skip ci] 2023-12-06 13:37:37 +00:00
ohif-bot
806c2f4b36 chore(version): version.json [skip ci] 2023-12-06 13:37:29 +00:00
Alireza
6651008fbb
fix(auth): fix the issue with oauth at a non root path (#3840) 2023-12-06 08:28:02 -05:00
ohif-bot
74c98b6e9f chore(version): Update package versions [skip ci] 2023-11-28 18:18:13 +00:00
ohif-bot
ecee25b1d5 chore(version): version.json [skip ci] 2023-11-28 18:18:03 +00:00
Alireza
f1a67647ae
fix(SM): drag and drop is now fixed for SM (#3813) 2023-11-28 13:04:30 -05:00
ohif-bot
4f9a00f872 chore(version): Update package versions [skip ci] 2023-11-27 13:36:36 +00:00
ohif-bot
7673a887e4 chore(version): version.json [skip ci] 2023-11-27 13:36:29 +00:00
Joe Boccanfuso
924affa7b5
fix(cine): Set cine disabled on mode exit. (#3812) 2023-11-27 08:27:38 -05:00
ohif-bot
abac6f583e chore(version): Update package versions [skip ci] 2023-11-24 22:41:51 +00:00
ohif-bot
36ba20d6e8 chore(version): version.json [skip ci] 2023-11-24 22:41:42 +00:00
Bill Wallace
9d1884d7d8
fix: Update the CS3D packages to add the most recent HTJ2K TSUIDS (#3806) 2023-11-24 17:32:19 -05:00
ohif-bot
622f18bd3e chore(version): Update package versions [skip ci] 2023-11-24 13:56:33 +00:00
ohif-bot
8b6256e76f chore(version): version.json [skip ci] 2023-11-24 13:56:24 +00:00
Igor Octaviano
c4ff2c2f09
feat: Merge Data Source (#3788)
Add the ability to merge two different series queries to generate a complete study query result.  Provides basic support for other types of merges, but those aren't yet added as full features.
2023-11-24 08:46:54 -05:00
ohif-bot
1be5613946 chore(version): Update package versions [skip ci] 2023-11-21 17:47:19 +00:00
ohif-bot
6edb1c1e4c chore(version): version.json [skip ci] 2023-11-21 17:47:12 +00:00
Pedro H. Köhler
404b0a5d53
feat(events): broadcast series summary metadata (#3798) 2023-11-21 12:38:08 -05:00
ohif-bot
786898fd63 chore(version): Update package versions [skip ci] 2023-11-21 14:15:45 +00:00
ohif-bot
dfa851600c chore(version): version.json [skip ci] 2023-11-21 14:15:37 +00:00
Bill Wallace
00e751933a
fix(DICOM Overlay): The overlay data wasn't being refreshed on change (#3793) 2023-11-21 09:05:25 -05:00
ohif-bot
c4e22c251f chore(version): Update package versions [skip ci] 2023-11-21 02:33:40 +00:00
ohif-bot
3cf4b6dea5 chore(version): version.json [skip ci] 2023-11-21 02:33:32 +00:00
Bill Wallace
8c8924af37
fix(metadata): to handle cornerstone3D update for htj2k (#3783) 2023-11-20 21:23:42 -05:00
ohif-bot
04121e3713 chore(version): Update package versions [skip ci] 2023-11-18 01:18:27 +00:00
ohif-bot
d1eef6dbdb chore(version): version.json [skip ci] 2023-11-18 01:18:18 +00:00
Joe Boccanfuso
d83beb7c62
feat(docs): Added various training videos to support the OHIF CLI tools (#3794) 2023-11-17 20:08:38 -05:00
ohif-bot
7867b29742 chore(version): Update package versions [skip ci] 2023-11-15 14:46:52 +00:00
ohif-bot
4a6f1bd407 chore(version): version.json [skip ci] 2023-11-15 14:46:44 +00:00
Igor Octaviano
b694228dd5
feat(url): Add SeriesInstanceUIDs wado query param (#3746) 2023-11-15 09:37:09 -05:00
ohif-bot
013068bcb0 chore(version): Update package versions [skip ci] 2023-11-13 15:52:59 +00:00
ohif-bot
3fbc23b04c chore(version): version.json [skip ci] 2023-11-13 15:52:50 +00:00
Igor Octaviano
323401418e
fix: 🐛 Run error handler for failed image requests (#3773) 2023-11-13 10:42:55 -05:00
ohif-bot
fc438e90ae chore(version): Update package versions [skip ci] 2023-11-13 14:00:34 +00:00
ohif-bot
9b7f38467b chore(version): version.json [skip ci] 2023-11-13 14:00:27 +00:00
Bill Wallace
fd1251f751
fix(overlay): Overlays aren't shown on undefined origin (#3781) 2023-11-13 08:50:58 -05:00
ohif-bot
14793493a4 chore(version): Update package versions [skip ci] 2023-11-10 22:00:19 +00:00
ohif-bot
73d8848707 chore(version): version.json [skip ci] 2023-11-10 22:00:11 +00:00
Alireza
43b1c17209
feat(dicomJSON): Add Loading Other Display Sets and JSON Metadata Generation script (#3777) 2023-11-10 16:51:23 -05:00
ohif-bot
5b513fd30e chore(version): Update package versions [skip ci] 2023-11-10 14:07:30 +00:00
ohif-bot
26c9567c38 chore(version): version.json [skip ci] 2023-11-10 14:07:23 +00:00
Pedro H. Köhler
8bbcd0e692
fix(path): upgrade docusaurus for security (#3780) 2023-11-10 08:54:40 -05:00
ohif-bot
8c2f495405 chore(version): Update package versions [skip ci] 2023-11-09 04:13:50 +00:00
ohif-bot
e1e1e60b7d chore(version): version.json [skip ci] 2023-11-09 04:13:43 +00:00
edwardyangxin
8af1046803
fix(arrow): ArrowAnnotate text key cause validation error (#3771) 2023-11-08 23:04:55 -05:00
ohif-bot
4bbba871f5 chore(version): Update package versions [skip ci] 2023-11-08 21:09:51 +00:00
ohif-bot
73e804c311 chore(version): version.json [skip ci] 2023-11-08 21:09:42 +00:00
Pedro H. Köhler
442f99d5eb
feat: add VolumeViewport rotation (#3776) 2023-11-08 16:00:18 -05:00
ohif-bot
9575a6f54c chore(version): Update package versions [skip ci] 2023-11-08 14:28:55 +00:00
ohif-bot
dc345d1875 chore(version): version.json [skip ci] 2023-11-08 14:28:48 +00:00
Alireza
bf252bcec2
feat(hp callback): Add viewport ready callback (#3772)
Co-authored-by: Ouwen Huang <ouwen.huang@duke.edu>
2023-11-08 09:19:49 -05:00
ohif-bot
1a68c06c3b chore(version): Update package versions [skip ci] 2023-11-03 16:29:50 +00:00
ohif-bot
a2361fa615 chore(version): version.json [skip ci] 2023-11-03 16:29:42 +00:00
Alireza
ee67bcc0f5
docs(faq): FAQ and Segmentation Mode Fix for some studies (#3762) 2023-11-03 12:19:24 -04:00
ohif-bot
f9f16bc69f chore(version): Update package versions [skip ci] 2023-11-02 16:17:30 +00:00
ohif-bot
a29f5bc9d3 chore(version): version.json [skip ci] 2023-11-02 16:17:20 +00:00
Joe Boccanfuso
b23eeff937
fix(thumbnail): Avoid multiple promise creations for thumbnails (#3756) 2023-11-02 12:07:52 -04:00
ohif-bot
09ff293f5f chore(version): Update package versions [skip ci] 2023-10-31 19:49:41 +00:00
ohif-bot
71a30dc9f2 chore(version): version.json [skip ci] 2023-10-31 19:49:31 +00:00
Pavel
330e11c7ff
feat(i18n): enhanced i18n support (#3730) 2023-10-31 15:36:45 -04:00
ohif-bot
c73a403cdc chore(version): Update package versions [skip ci] 2023-10-30 15:01:05 +00:00
ohif-bot
5b3b6eed16 chore(version): version.json [skip ci] 2023-10-30 15:00:58 +00:00
Joe Boccanfuso
2a15ef0e44
feat(filters): save worklist query filters to session storage so that they persist between navigation to the viewer and back (#3749)
Co-authored-by: ladeirarodolfo <39910206+ladeirarodolfo@users.noreply.github.com>
2023-10-30 10:47:43 -04:00
Joe Boccanfuso
db395852b6
fix(measurement service): Implemented correct check of schema keys in _isValidMeasurment. (#3750) 2023-10-30 10:44:21 -04:00
ohif-bot
423ba7c269 chore(version): Update package versions [skip ci] 2023-10-25 17:17:55 +00:00
ohif-bot
cafba997bf chore(version): version.json [skip ci] 2023-10-25 17:17:47 +00:00
Bill Wallace
dd6d9768bb
fix(toolbar): allow customizable toolbar for active viewport and allow active tool to be deactivated via a click (#3608)
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2023-10-25 13:08:12 -04:00
ohif-bot
2145b42920 chore(version): Update package versions [skip ci] 2023-10-24 17:20:41 +00:00
ohif-bot
a5ad1cc02a chore(version): version.json [skip ci] 2023-10-24 17:20:32 +00:00
Joe Boccanfuso
d98439fe7f
fix(sr): dcm4chee requires the patient name for an SR to match what is in the original study (#3739) 2023-10-24 13:06:12 -04:00
ohif-bot
3bbbcea0d7 chore(version): Update package versions [skip ci] 2023-10-23 14:03:11 +00:00
ohif-bot
6e993511b7 chore(version): version.json [skip ci] 2023-10-23 14:03:01 +00:00
bluesteel23
eec9c33b76
docs(azure): Azure static Deployment details (#3740) 2023-10-23 09:53:43 -04:00
ohif-bot
c31c7f8e79 chore(version): Update package versions [skip ci] 2023-10-23 13:23:07 +00:00
ohif-bot
a7125f9385 chore(version): version.json [skip ci] 2023-10-23 13:22:59 +00:00
edwardyangxin
49514aedfe
fix(recipes): package.json script orthanc:up docker-compose path (#3741) 2023-10-23 09:13:24 -04:00
ohif-bot
43c882ac87 chore(version): Update package versions [skip ci] 2023-10-19 17:39:23 +00:00
ohif-bot
912b3c7c53 chore(version): version.json [skip ci] 2023-10-19 17:39:15 +00:00
Joe Boccanfuso
d9258eca70
fix(cine): Use the frame rate specified in DICOM and optionally auto play cine (#3735)
Co-authored-by: rareramos <rareramos1126@gmail.com>
Co-authored-by: Doug Horner <horner@mieweb.com>
Co-authored-by: Rehan <58819707+Rayhan-011@users.noreply.github.com>
2023-10-19 13:29:44 -04:00
ohif-bot
fa599d05fb chore(version): Update package versions [skip ci] 2023-10-19 17:10:43 +00:00
ohif-bot
5f8325e338 chore(version): version.json [skip ci] 2023-10-19 17:10:36 +00:00
Joe Boccanfuso
93d798db99
fix(calibration): No calibration popup caused by perhaps an unused code optimization for production builds (#3736) 2023-10-19 13:02:03 -04:00
ohif-bot
33f1259408 chore(version): Update package versions [skip ci] 2023-10-12 21:18:38 +00:00
ohif-bot
c54658a320 chore(version): version.json [skip ci] 2023-10-12 21:18:31 +00:00
Alireza
55002fbd71
chore(version): move to the next beta version [BUMP BETA] 2023-10-12 17:09:44 -04:00
ohif-bot
3f9ee1451b chore(version): Update package versions [skip ci] 2023-10-11 16:10:32 +00:00
ohif-bot
70ea13ec1f chore(version): version.json [skip ci] 2023-10-11 16:10:25 +00:00
Alireza
157b88c909
fix(display messages): broken after timings (#3719) 2023-10-11 12:01:32 -04:00
ohif-bot
75c3f94177 chore(version): Update package versions [skip ci] 2023-10-11 14:19:25 +00:00
ohif-bot
6874d5f0b9 chore(version): version.json [skip ci] 2023-10-11 14:19:16 +00:00
Alireza
a3f2a1a7b0
fix(export): wrong export for the tmtv RT function (#3715) 2023-10-11 10:10:29 -04:00
ohif-bot
8067f0c62c chore(version): Update package versions [skip ci] 2023-10-10 19:30:50 +00:00
ohif-bot
a894b6ffc5 chore(version): version.json [skip ci] 2023-10-10 19:30:41 +00:00
Joe Boccanfuso
c3a5847dcd
fix(i18n): display set(s) are two words for English messages (#3711) 2023-10-10 15:20:47 -04:00
ohif-bot
132938bbe0 chore(version): Update package versions [skip ci] 2023-10-10 17:32:24 +00:00
ohif-bot
5ba63bd010 chore(version): version.json [skip ci] 2023-10-10 17:32:14 +00:00
Alireza
7c57f67844
fix(modules): add stylus loader as an option to be uncommented (#3710) 2023-10-10 13:21:17 -04:00
ohif-bot
dc929d3df5 chore(version): Update package versions [skip ci] 2023-10-10 14:36:12 +00:00
ohif-bot
5a3af83168 chore(version): version.json [skip ci] 2023-10-10 14:36:03 +00:00
Joe Boccanfuso
a9a6ad50ea
fix(segmentation): Various fixes for segmentation mode and other (#3709) 2023-10-10 10:25:30 -04:00
ohif-bot
f8455056cd chore(version): Update package versions [skip ci] 2023-10-10 00:58:12 +00:00
ohif-bot
f9c3d510d3 chore(version): version.json [skip ci] 2023-10-10 00:58:05 +00:00
Alireza
52f34c64d0
fix(voi): should publish voi change event on reset (#3707) 2023-10-09 20:49:10 -04:00
ohif-bot
7d87766ac4 chore(version): Update package versions [skip ci] 2023-10-09 17:58:57 +00:00
ohif-bot
820bb83b70 chore(version): version.json [skip ci] 2023-10-09 17:58:49 +00:00
Alireza
0a42d573bb
fix(modality unit): fix the modality unit per target via upgrade of cs3d (#3706) 2023-10-09 13:48:31 -04:00
ohif-bot
f9f33f74c1 chore(version): Update package versions [skip ci] 2023-10-09 15:13:37 +00:00
ohif-bot
6a5fe59136 chore(version): version.json [skip ci] 2023-10-09 15:13:28 +00:00
Alireza
4911e4796c
fix(segmentation): do not use SAB if not specified (#3705) 2023-10-09 11:02:49 -04:00
ohif-bot
349c503f04 chore(version): Update package versions [skip ci] 2023-10-06 19:14:47 +00:00
ohif-bot
a6a6aed361 chore(version): version.json [skip ci] 2023-10-06 19:14:40 +00:00
dxlin
40673f64b3
feat(Segmentation): download RTSS from Labelmap(#3692)
Co-authored-by: Alireza <ar.sedghi@gmail.com>
2023-10-06 15:00:04 -04:00
ohif-bot
eab42c1032 chore(version): Update package versions [skip ci] 2023-10-06 03:49:04 +00:00
ohif-bot
a790be9f5a chore(version): version.json [skip ci] 2023-10-06 03:48:56 +00:00
Alireza
8bc12a37d0
fix(bugs): fixing lots of bugs regarding release candidate (#3700) 2023-10-05 23:39:56 -04:00
ohif-bot
29aeb070e0 chore(version): Update package versions [skip ci] 2023-10-06 02:22:47 +00:00
ohif-bot
cdb66dcdef chore(version): version.json [skip ci] 2023-10-06 02:22:39 +00:00
Joe Boccanfuso
1fd98d9220
fix(segmentation scroll): and hydration bugs (#3701) 2023-10-05 22:13:08 -04:00
ohif-bot
748acaf9c1 chore(version): Update package versions [skip ci] 2023-10-04 18:25:03 +00:00
ohif-bot
3f27c3820f chore(version): version.json [skip ci] 2023-10-04 18:24:55 +00:00
Joe Boccanfuso
c1d5ee7e3f
fix(measurement and microscopy): various small fixes for measurement and microscopy side panel (#3696) 2023-10-04 14:11:09 -04:00
ohif-bot
646bef1d93 chore(version): Update package versions [skip ci] 2023-10-04 17:22:52 +00:00
ohif-bot
83c001f8e4 chore(version): version.json [skip ci] 2023-10-04 17:22:43 +00:00
Alireza
ebe8f71da2
feat(locale): add German translations - community PR (#3697)
Co-authored-by: pwespi <pwespi@pm.me>
2023-10-04 13:11:31 -04:00
ohif-bot
17f528bcde chore(version): Update package versions [skip ci] 2023-10-04 16:34:07 +00:00
ohif-bot
ed82511acc chore(version): version.json [skip ci] 2023-10-04 16:33:58 +00:00
Alireza
745050a28e
feat(locale): Added Turkish language support (tr-TR) - Community PR (#3695)
Co-authored-by: Ahmet Altay <46381367+ahmetaltay33@users.noreply.github.com>
2023-10-04 12:22:26 -04:00
ohif-bot
953c564d98 chore(version): Update package versions [skip ci] 2023-10-04 16:17:52 +00:00
ohif-bot
c418185f0b chore(version): version.json [skip ci] 2023-10-04 16:17:44 +00:00
wangxuan
29748d46a1
fix(translation): Side panel translate fix (#3156) 2023-10-04 12:07:30 -04:00
ohif-bot
a755cce7f1 chore(version): Update package versions [skip ci] 2023-10-04 15:37:52 +00:00
ohif-bot
42b7d9983c chore(version): version.json [skip ci] 2023-10-04 15:37:44 +00:00
Joe Boccanfuso
28cec04ff4
fix(cli): Add npm packaged mode not working (#3689) 2023-10-04 11:27:55 -04:00
ohif-bot
01d843f267 chore(version): Update package versions [skip ci] 2023-10-03 21:11:31 +00:00
ohif-bot
15eca78b68 chore(version): version.json [skip ci] 2023-10-03 21:11:23 +00:00
Bill Wallace
108383b9ef
feat(debug): Add timing information about time to first image/all images, and query time (#3681) 2023-10-03 17:01:00 -04:00
ohif-bot
1b207f14d2 chore(version): Update package versions [skip ci] 2023-10-03 19:28:23 +00:00
ohif-bot
38cd3d8afc chore(version): version.json [skip ci] 2023-10-03 19:28:14 +00:00
Alireza
5e7fe91617
feat(displayArea): add display area to hanging protocol (#3691)
Co-authored-by: Ouwen Huang <ouwen.oh@gmail.com>
2023-10-03 15:18:15 -04:00
ohif-bot
64f68f58c2 chore(version): Update package versions [skip ci] 2023-10-03 18:36:48 +00:00
ohif-bot
49bc346661 chore(version): version.json [skip ci] 2023-10-03 18:36:39 +00:00
Yaroslav Halchenko
5cc1dc9b9c
docs(links): Adding references to two used markdown links (#3650) 2023-10-03 14:26:31 -04:00
ohif-bot
2a086a699a chore(version): Update package versions [skip ci] 2023-10-03 18:12:49 +00:00
ohif-bot
58f214bca5 chore(version): version.json [skip ci] 2023-10-03 18:12:41 +00:00
rodrigobasilio2022
4dc2acdefa
fix(editing): regression bug in disable editing (#3687) 2023-10-03 14:02:21 -04:00
ohif-bot
4c88a4a2fd chore(version): Update package versions [skip ci] 2023-10-03 16:35:17 +00:00
ohif-bot
06facd8ea2 chore(version): version.json [skip ci] 2023-10-03 16:35:08 +00:00
Edward Son
eb22328fc0
fix(typescript error): Change pubSubServiceInterface file type to typescript (#3546)
Co-authored-by: edward65 <edward@afxmedical.com>
2023-10-03 12:23:40 -04:00
ohif-bot
b33ad0c7e9 chore(version): Update package versions [skip ci] 2023-10-03 15:55:03 +00:00
ohif-bot
3415cf909f chore(version): version.json [skip ci] 2023-10-03 15:54:54 +00:00
Joe Boccanfuso
e36a604331
fix(dicom overlay): Handle special cases of ArrayBuffer for various DICOM overlay attributes. (#3684)
Co-authored-by: Alireza <ar.sedghi@gmail.com>
2023-10-03 11:44:56 -04:00
Bill Wallace
8a335bd03d
fix(StackSync): Miscellaneous fixes for stack image sync (#3663) 2023-10-03 10:59:09 -04:00
ohif-bot
b3429729f1 chore(version): Update package versions [skip ci] 2023-10-03 14:22:22 +00:00
ohif-bot
e2e806f188 chore(version): version.json [skip ci] 2023-10-03 14:22:12 +00:00
Alireza
1129c155d2
fix(config): support more values for the useSharedArrayBuffer (#3688) 2023-10-03 10:11:32 -04:00
ohif-bot
c9c57b04d3 chore(version): Update package versions [skip ci] 2023-09-29 22:04:50 +00:00
ohif-bot
d09938b72a chore(version): version.json [skip ci] 2023-09-29 22:04:41 +00:00
Alireza
a67d72de85
fix(no sab): should work when shared array buffer is not required (#3686) 2023-09-29 17:54:16 -04:00
ohif-bot
3dabee2342 chore(version): Update package versions [skip ci] 2023-09-29 14:51:58 +00:00
ohif-bot
66abdace30 chore(version): version.json [skip ci] 2023-09-29 14:51:49 +00:00
Joe Boccanfuso
dc73b18748
fix(cli): various fixes for adding custom modes and extensions (#3683)
Co-authored-by: Alireza <ar.sedghi@gmail.com>
2023-09-29 10:35:30 -04:00
ohif-bot
52da92fed4 chore(version): Update package versions [skip ci] 2023-09-26 20:58:57 +00:00
ohif-bot
cfbb3cfded chore(version): version.json [skip ci] 2023-09-26 20:58:49 +00:00
Joe Boccanfuso
86f54d0d07
fix(toggleOneUp): fixed one up for main tmtv layout (#3677) 2023-09-26 16:49:06 -04:00
ohif-bot
485cf037a1 chore(version): Update package versions [skip ci] 2023-09-26 19:38:00 +00:00
ohif-bot
3d38122b84 chore(version): version.json [skip ci] 2023-09-26 19:37:51 +00:00
Alireza
8feb5ee3f9
chore(publish): fix timeout problem without lerna (#3679) 2023-09-26 15:27:24 -04:00
ohif-bot
1f906963e7 chore(version): Update package versions [skip ci] 2023-09-26 15:54:37 +00:00
ohif-bot
9a4aa1a5aa chore(version): version.json [skip ci] 2023-09-26 15:54:28 +00:00
Alireza
fcd323fa8c
chore(publish): fix timeout problem (#3678) 2023-09-26 11:43:37 -04:00
ohif-bot
b6e33224c8 chore(version): Update package versions [skip ci] 2023-09-26 13:03:46 +00:00
ohif-bot
b8e519a4a9 chore(version): version.json [skip ci] 2023-09-26 13:03:37 +00:00
Alireza
0bf9949f45
chore(build): try to publish to npm again (#3676) 2023-09-26 08:53:40 -04:00
ohif-bot
3431b103e2 chore(version): Update package versions [skip ci] 2023-09-26 03:23:59 +00:00
ohif-bot
00918d86d3 chore(version): version.json [skip ci] 2023-09-26 03:23:52 +00:00
Alireza
c86b129f58
chore(build): try to publish to npm (#3675) 2023-09-25 23:13:43 -04:00
ohif-bot
10ca35d5f4 chore(version): Update package versions [skip ci] 2023-09-22 20:00:44 +00:00
ohif-bot
a308f7b4b6 chore(version): version.json [skip ci] 2023-09-22 20:00:36 +00:00
Sofien-Sellami
04ca10d877
fix(react-select): update react select package (#3622) 2023-09-22 15:48:12 -04:00
Joe Boccanfuso
85c899b399
feat(SidePanel): new side panel tab look-and-feel (#3657) 2023-09-22 15:36:44 -04:00
Alireza
48bbd6281a
feat(segmentation mode): Add create, and export SEG with Brushes (#3632) 2023-09-22 10:23:44 -04:00
ohif-bot
896866e9d0 chore(version): Update package versions [skip ci] 2023-09-22 13:40:25 +00:00
ohif-bot
a02a5ded9a chore(version): version.json [skip ci] 2023-09-22 13:40:16 +00:00
Alireza
2bd3b26a6a
perf(memory): add 16 bit texture via configuration - reduces memory by half (#3662)
Co-authored-by: Ouwen Huang <ouwen.huang@duke.edu>
2023-09-22 09:31:45 -04:00
ohif-bot
034a6d7696 chore(version): Update package versions [skip ci] 2023-09-21 20:53:19 +00:00
ohif-bot
2fc28978da chore(version): version.json [skip ci] 2023-09-21 20:53:11 +00:00
Joe Boccanfuso
221dedde5d
fix(mpr): Return the original/raw hanging protocol when fetching and preserving the current active protocol. (#3670) 2023-09-21 16:45:15 -04:00
ohif-bot
807bd663b3 chore(version): Update package versions [skip ci] 2023-09-21 11:38:01 +00:00
ohif-bot
0318504597 chore(version): version.json [skip ci] 2023-09-21 11:37:54 +00:00
Alireza
d609ae1edb
docs(url): fix incorrect url param in the doc (#3667) 2023-09-21 07:30:01 -04:00
ohif-bot
2132f0777e chore(version): Update package versions [skip ci] 2023-09-19 14:19:42 +00:00
ohif-bot
10ecd4997b chore(version): version.json [skip ci] 2023-09-19 14:19:34 +00:00
Alireza
2d7721cb58
fix(keyCloak): fix openresty keycloak deployment recipe (#3655)
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2023-09-19 10:11:32 -04:00
ohif-bot
c49b833274 chore(version): Update package versions [skip ci] 2023-09-18 15:10:25 +00:00
ohif-bot
3279df543f chore(version): version.json [skip ci] 2023-09-18 15:10:17 +00:00
Joe Boccanfuso
2737903386
fix(DicomJson): retrieve.series.metadata method should be async (#3659) 2023-09-18 11:02:27 -04:00
ohif-bot
9ccdaef812 chore(version): Update package versions [skip ci] 2023-09-15 14:58:43 +00:00
ohif-bot
8c6764a936 chore(version): version.json [skip ci] 2023-09-15 14:58:36 +00:00
Bill Wallace
38af3112ec
fix(measurements): Update the calibration tool to match changes in CS3D (#3505)
This change makes the OHIF side consistent with the CS3D user calibration settings, and will correctly display px and rounding values consistent with the CS3D display.
2023-09-15 10:50:23 -04:00
ohif-bot
bd7f9592ea chore(version): Update package versions [skip ci] 2023-09-12 14:38:15 +00:00
ohif-bot
fd74e46280 chore(version): version.json [skip ci] 2023-09-12 14:38:08 +00:00
Ibrahim
74e62a1763
fix(health imaging): studies not loading from healthimaging if imagepositionpatient is missing (#3646) 2023-09-12 10:30:02 -04:00
ohif-bot
7eda0c5f46 chore(version): Update package versions [skip ci] 2023-09-12 11:49:05 +00:00
ohif-bot
15e1af2526 chore(version): version.json [skip ci] 2023-09-12 11:48:58 +00:00
Yaroslav Halchenko
11ca5b6eae
docs(spelling): Add codespell config + github action, run and fix a good number of typos (#3645) 2023-09-12 07:40:38 -04:00
ohif-bot
64079e0720 chore(version): Update package versions [skip ci] 2023-09-12 02:02:13 +00:00
ohif-bot
7f683a336b chore(version): version.json [skip ci] 2023-09-12 02:02:04 +00:00
Joe Boccanfuso
0d10f46b88
fix(suv): import calculate-suv library version that prevents SUV calculation for a zero PatientWeight (#3638) 2023-09-11 21:50:32 -04:00
ohif-bot
ca19baeafd chore(version): Update package versions [skip ci] 2023-09-12 01:39:48 +00:00
ohif-bot
3e73ddf4c1 chore(version): version.json [skip ci] 2023-09-12 01:39:41 +00:00
lokeshnano
c0fb2b4892
chore(gitignore): add vercel ignore (#3640) 2023-09-11 21:32:22 -04:00
ohif-bot
2a7787132a chore(version): Update package versions [skip ci] 2023-09-11 14:40:31 +00:00
ohif-bot
3cc35e7ed5 chore(version): version.json [skip ci] 2023-09-11 14:40:22 +00:00
Joe Boccanfuso
de0a742733
chore(prettier): fix end-of-line warnings (#3642) 2023-09-11 10:31:40 -04:00
ohif-bot
c158279a53 chore(version): Update package versions [skip ci] 2023-09-11 13:19:30 +00:00
ohif-bot
12acc396d6 chore(version): version.json [skip ci] 2023-09-11 13:19:23 +00:00
Joe Boccanfuso
a6e668f8d4
docs(google cloud healthcare): Added recipe docs for setting up Google Cloud Healthcare API (#3641) 2023-09-11 09:11:25 -04:00
ohif-bot
6dd74b6371 chore(version): Update package versions [skip ci] 2023-09-06 18:17:59 +00:00
ohif-bot
908fb8e14f chore(version): version.json [skip ci] 2023-09-06 18:17:50 +00:00
Alireza
94f7cfb08e
fix(hotkeys): preserve hotkeys if changed, and reduce re-rendering (#3635) 2023-09-06 14:09:26 -04:00
ohif-bot
6c8364835b chore(version): Update package versions [skip ci] 2023-09-06 13:53:48 +00:00
ohif-bot
a39929d4d5 chore(version): version.json [skip ci] 2023-09-06 13:53:40 +00:00
Salim Kanoun
dd6a8812d1
export(checkbox): add missing checkbox export (#3629) 2023-09-06 09:46:01 -04:00
ohif-bot
ce72929367 chore(version): Update package versions [skip ci] 2023-09-06 13:34:21 +00:00
ohif-bot
38ab1ae5a6 chore(version): version.json [skip ci] 2023-09-06 13:34:13 +00:00
M.D
69115da06d
feat(ImageOverlayViewerTool): add ImageOverlayViewer tool that can render image overlay (pixel overlay) of the DICOM images (#3163)
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2023-09-06 09:24:17 -04:00
ohif-bot
ef58893c27 chore(version): Update package versions [skip ci] 2023-09-05 17:13:27 +00:00
ohif-bot
7987f0effa chore(version): version.json [skip ci] 2023-09-05 17:13:19 +00:00
Joe Boccanfuso
3ce72254b3
fix(nginx archive recipe): Fixes to various configuration files. (#3624)
Co-authored-by: Alireza <ar.sedghi@gmail.com>
2023-09-05 13:05:36 -04:00
ohif-bot
6d47dce4dd chore(version): Update package versions [skip ci] 2023-09-01 20:26:45 +00:00
ohif-bot
f7cddd0842 chore(version): version.json [skip ci] 2023-09-01 20:26:38 +00:00
Alireza
9045ddaedc
chore(prettier): full repo linting and code reformatting once and for all (#3627) 2023-09-01 16:19:39 -04:00
ohif-bot
01500a2d4c chore(version): version.json [skip ci] 2023-08-30 22:46:26 +00:00
Alireza
b170e7f5ae
chore(prettier): update prettier to fix publish (#3623) 2023-08-30 18:38:57 -04:00
ohif-bot
2d7da9c0bb chore(version): version.json [skip ci] 2023-08-30 20:54:03 +00:00
Alireza
4c6ff873e8
feat(grid): remove viewportIndex and only rely on viewportId (#3591)
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2023-08-30 16:46:55 -04:00
ohif-bot
5dafac7c92 chore(version): Update package versions [skip ci] 2023-08-30 13:38:56 +00:00
ohif-bot
7ecaf0da5d chore(version): version.json [skip ci] 2023-08-30 13:38:49 +00:00
Joe Boccanfuso
adedc8c382
feat(data source UI config): Popup the configuration dialogue whenever a data source is not fully configured (#3620) 2023-08-30 09:27:48 -04:00
ohif-bot
5856ae2464 chore(version): Update package versions [skip ci] 2023-08-29 16:44:37 +00:00
ohif-bot
84b7de5d96 chore(version): version.json [skip ci] 2023-08-29 16:44:29 +00:00
mccle
35fc30c535
fix(OpenIdConnectRoutes): fix handleUnauthenticated (#3617) 2023-08-29 12:36:41 -04:00
ohif-bot
eafc716d00 chore(version): Update package versions [skip ci] 2023-08-29 16:33:17 +00:00
ohif-bot
88d695cf4f chore(version): version.json [skip ci] 2023-08-29 16:33:10 +00:00
Joe Boccanfuso
44f101d3f2
fix(PT Metadata): Allow for PatientWeight to be missing from the metadata (#3621) 2023-08-29 12:21:21 -04:00
ohif-bot
a9d6869198 chore(version): Update package versions [skip ci] 2023-08-29 15:27:52 +00:00
ohif-bot
77c102f993 chore(version): version.json [skip ci] 2023-08-29 15:27:46 +00:00
dxlin
75f61f85fe
fi(buffer): buffer undefined (#3590) 2023-08-29 11:20:01 -04:00
ohif-bot
9fbdf37f44 chore(version): Update package versions [skip ci] 2023-08-25 18:27:00 +00:00
ohif-bot
7ecd2f1628 chore(version): version.json [skip ci] 2023-08-25 18:26:53 +00:00
Joe Boccanfuso
a336992971
feat(cloud data source config): GUI and API for configuring a cloud data source with Google cloud healthcare implementation (#3589) 2023-08-25 14:19:17 -04:00
ohif-bot
a2ef2b0fcb chore(version): Update package versions [skip ci] 2023-08-23 13:43:54 +00:00
ohif-bot
eb57c2f8bd chore(version): version.json [skip ci] 2023-08-23 13:43:46 +00:00
Alireza
65b49aeb1b
fix(memory leak): array buffer was sticking around in volume viewports (#3611) 2023-08-23 09:35:44 -04:00
ohif-bot
fe0ee050ed chore(version): Update package versions [skip ci] 2023-08-16 20:56:02 +00:00
ohif-bot
ee6f399787 chore(version): version.json [skip ci] 2023-08-16 20:55:59 +00:00
Igor Octaviano
b117a54aa1
fix(rgb): Fix rgb inconsistencies by updating cs3d image loader (#3604) 2023-08-16 16:48:13 -04:00
ohif-bot
ede6300099 chore(version): Update package versions [skip ci] 2023-08-16 16:59:14 +00:00
ohif-bot
a8717c8625 chore(version): version.json [skip ci] 2023-08-16 16:59:10 +00:00
Joe Boccanfuso
0f9b36906f
feat(thumbnail highlight): Thumbnails of hydrated series are now highlighted (#3594) 2023-08-16 12:51:26 -04:00
ohif-bot
3fe676638b chore(version): Update package versions [skip ci] 2023-08-16 15:44:41 +00:00
ohif-bot
d69dab70e1 chore(version): version.json [skip ci] 2023-08-16 15:44:38 +00:00
rodrigobasilio2022
f845f87716
feat(handler): Add handler for unsupported sopclassUIDs (#3601) 2023-08-16 11:37:28 -04:00
ohif-bot
de6976df3b chore(version): Update package versions [skip ci] 2023-08-16 14:47:46 +00:00
ohif-bot
ea9903e92b chore(version): version.json [skip ci] 2023-08-16 14:47:42 +00:00
Igor Octaviano
ed0b01cd39
doc(README.md): Acknowledge IDC (README.md) #1136 (#3576) 2023-08-16 10:40:19 -04:00
ohif-bot
2c891dae60 chore(version): Update package versions [skip ci] 2023-08-16 14:33:56 +00:00
ohif-bot
bb4297af35 chore(version): version.json [skip ci] 2023-08-16 14:33:52 +00:00
rodrigobasilio2022
3c4795d8cb
feat(read-only config): read only ui for SEG/RT/SR (#3586) 2023-08-16 10:26:28 -04:00
ohif-bot
c6d5f719e7 chore(version): Update package versions [skip ci] 2023-08-16 14:22:41 +00:00
ohif-bot
a5bfae6e27 chore(version): version.json [skip ci] 2023-08-16 14:22:37 +00:00
Bill Wallace
53c16b928f
feat(hp priors): Study comparison hanging protocol (#3579) 2023-08-16 10:15:12 -04:00
ohif-bot
ecbe7c56e0 chore(version): Update package versions [skip ci] 2023-08-16 03:06:31 +00:00
ohif-bot
c4007d4d0d chore(version): version.json [skip ci] 2023-08-16 03:06:27 +00:00
rodrigobasilio2022
19408c987f
feat(errorHandling): Create fallback page for Server, Study and Series (#3592) 2023-08-15 22:59:29 -04:00
ohif-bot
9c51f17c60 chore(version): Update package versions [skip ci] 2023-08-15 11:29:22 +00:00
ohif-bot
e664fffbc0 chore(version): version.json [skip ci] 2023-08-15 11:29:18 +00:00
Bill Wallace
884577a23d
fix: Integration test instability (#3597)
There are a couple of changes here which should improve stability of the tests.  Hopefully that will be sufficient, but it is difficult to tell for sure if it is complete.
2023-08-15 07:20:45 -04:00
ohif-bot
799d0793fd chore(version): Update package versions [skip ci] 2023-08-14 15:07:20 +00:00
ohif-bot
7074c6d806 chore(version): version.json [skip ci] 2023-08-14 15:07:16 +00:00
Patrick D. Lloyd
41dc424d4a
fix(Docker): Fix ARM64 Docker builds by adding node-gyp dependencies (#3595) (#3596) 2023-08-14 10:46:41 -04:00
ohif-bot
88ef7b733f chore(version): Update package versions [skip ci] 2023-08-11 22:23:34 +00:00
ohif-bot
2c38f6ba8c chore(version): version.json [skip ci] 2023-08-11 22:23:31 +00:00
rodrigobasilio2022
5302e5b62b
feat(Thumbnail): Display set messages support & displaying of series inconsistencies in the thumbnail (#3499)
Co-authored-by: Igor Octaviano <igoroctaviano@gmail.com>
2023-08-11 19:16:25 -03:00
ohif-bot
aedb9d1576 chore(version): Update package versions [skip ci] 2023-08-09 15:47:02 +00:00
ohif-bot
daf734e09e chore(version): version.json [skip ci] 2023-08-09 15:46:59 +00:00
rodrigobasilio2022
b55518e08e
chore(exports): Exposes hydration functions from seg and rt extensions (#3585) 2023-08-09 11:39:17 -04:00
ohif-bot
ca1287d99e chore(version): Update package versions [skip ci] 2023-08-09 14:15:07 +00:00
ohif-bot
86e6d28ade chore(version): version.json [skip ci] 2023-08-09 14:15:03 +00:00
Alireza
5d435424e2
lint(curly): consistent use of curly brackets in codebase (#3584) 2023-08-09 10:07:33 -04:00
ohif-bot
9ae3d9f769 chore(version): Update package versions [skip ci] 2023-08-09 12:16:53 +00:00
ohif-bot
348acb9091 chore(version): version.json [skip ci] 2023-08-09 12:16:50 +00:00
Alireza
8adf663248
fix(state synchronization): SEG and RT viewports should keep their before hydration voi (#3560) 2023-08-09 08:08:23 -04:00
ohif-bot
4f037ae55e chore(version): Update package versions [skip ci] 2023-08-08 18:48:02 +00:00
ohif-bot
55a50c9d38 chore(version): version.json [skip ci] 2023-08-08 18:47:58 +00:00
Alireza
156c1ba60b
perf(segmentation): make segmentation read 3x faster (#3577) 2023-08-08 14:39:31 -04:00
ohif-bot
ec76ea24dd chore(version): Update package versions [skip ci] 2023-08-08 14:13:33 +00:00
ohif-bot
431b307fab chore(version): version.json [skip ci] 2023-08-08 14:13:30 +00:00
Igor Octaviano
0493a0d587
feat(Mode): Ability to overwrite mode configuration and small improvements (#3580) 2023-08-08 10:05:20 -04:00
ohif-bot
58d38495f0 chore(version): Update package versions [skip ci] 2023-07-27 16:47:28 +00:00
ohif-bot
862f255be2 chore(version): version.json [skip ci] 2023-07-27 16:47:24 +00:00
Alireza
72207e6c78
dev(yarn link): make it possible to yarn link easily with cornerstone3D and update docs (#3563) 2023-07-27 12:39:12 -04:00
ohif-bot
6d3b3d191f chore(version): Update package versions [skip ci] 2023-07-27 13:59:21 +00:00
ohif-bot
d8867d3804 chore(version): version.json [skip ci] 2023-07-27 13:59:17 +00:00
Andres Diaz-Pinto
019dedce34
docs(readme): fix broken DICOMWeb link in main Readme (#3561)
Signed-off-by: Andres <diazandr3s@gmail.com>
2023-07-27 09:51:29 -04:00
ohif-bot
4d104add05 chore(version): Update package versions [skip ci] 2023-07-26 15:42:03 +00:00
ohif-bot
924a5478f3 chore(version): version.json [skip ci] 2023-07-26 15:41:59 +00:00
Alireza
d8f628b125
fix(rerendering): reduce the re-rendering of the viewport grid (#3558) 2023-07-26 11:34:50 -04:00
ohif-bot
cab8d322c2 chore(version): Update package versions [skip ci] 2023-07-21 12:34:48 +00:00
ohif-bot
3ef26cc670 chore(version): version.json [skip ci] 2023-07-21 12:34:45 +00:00
Wenqi Li
1efe2db662
docs: fixes a README.md typo (#3553) 2023-07-21 08:27:51 -04:00
ohif-bot
72933af984 chore(version): Update package versions [skip ci] 2023-07-20 16:17:02 +00:00
ohif-bot
2645e3c7aa chore(version): version.json [skip ci] 2023-07-20 16:16:58 +00:00
Alireza
81ab52784a
fix(oauth): handle no user scenario (#3556) 2023-07-20 12:08:54 -04:00
ohif-bot
09a302250c chore(version): Update package versions [skip ci] 2023-07-20 15:50:41 +00:00
ohif-bot
783bab7c9d chore(version): version.json [skip ci] 2023-07-20 15:50:38 +00:00
Joe Boccanfuso
7bbc213f58
feat(DataSource): Allow for dynamic data source configuration and creation (#3543) 2023-07-20 11:43:05 -04:00
ohif-bot
6d88978710 chore(version): Update package versions [skip ci] 2023-07-19 19:28:14 +00:00
ohif-bot
32bb553b05 chore(version): version.json [skip ci] 2023-07-19 19:28:11 +00:00
Bill Wallace
d5cbbb037d
Fix the wrong aspect ratio load (#3534) 2023-07-19 15:21:19 -04:00
ohif-bot
b904ea0f23 chore(version): Update package versions [skip ci] 2023-07-19 13:49:16 +00:00
ohif-bot
839923e578 chore(version): version.json [skip ci] 2023-07-19 13:49:13 +00:00
Bill Wallace
030e1e4104
chore(test): Integration test wait until rendered/queried instead of timed (#3540) 2023-07-19 09:41:47 -04:00
ohif-bot
265c1fbb10 chore(version): Update package versions [skip ci] 2023-07-13 13:13:19 +00:00
ohif-bot
f3aa8a8b61 chore(version): version.json [skip ci] 2023-07-13 13:13:14 +00:00
Joe Boccanfuso
18156bb7b1
fix(PT measurement units): Use the modality unit that arrives from cornerstone3d instead of calculating the modality unit (again) here. (#3533) 2023-07-13 09:03:17 -04:00
ohif-bot
93a009f1a6 chore(version): Update package versions [skip ci] 2023-07-12 14:26:38 +00:00
ohif-bot
11471e6fc1 chore(version): version.json [skip ci] 2023-07-12 14:26:35 +00:00
Joe Boccanfuso
7d286a07f2
fix(Worklist): use the flexbox gap style property for spacing between mode buttons (#3532) 2023-07-12 10:19:03 -04:00
ohif-bot
19418df8b5 chore(version): Update package versions [skip ci] 2023-07-12 12:35:35 +00:00
ohif-bot
c9eb0250dd chore(version): version.json [skip ci] 2023-07-12 12:35:32 +00:00
Joe Boccanfuso
c3cd265430
fix(Measurement tracking): Side panel study browser can now be closed and measurements are still tracked (#3530) 2023-07-12 08:28:48 -04:00
ohif-bot
913264d289 chore(version): Update package versions [skip ci] 2023-07-07 16:44:37 +00:00
ohif-bot
74acc02c37 chore(version): version.json [skip ci] 2023-07-07 16:44:34 +00:00
m00n620
453ff0be4f
fix(cli): extension template (#3512) 2023-07-07 12:37:36 -04:00
ohif-bot
2e040d550d chore(version): Update package versions [skip ci] 2023-07-07 16:01:21 +00:00
ohif-bot
bfa1b1c7c0 chore(version): version.json [skip ci] 2023-07-07 16:01:17 +00:00
Sofien-Sellami
a3e7ff479a
fix(tmtv): jumpToClick Tool for TMTV mode (#3525) 2023-07-07 11:53:54 -04:00
ohif-bot
87f361516c chore(version): Update package versions [skip ci] 2023-07-07 15:37:42 +00:00
ohif-bot
5eaf6168f6 chore(version): version.json [skip ci] 2023-07-07 15:37:38 +00:00
Sofien-Sellami
5ab74f5020
ui(InputNumber): adding label element in InputNumber Component and … (#3501) 2023-07-07 11:30:52 -04:00
ohif-bot
92273b25b3 chore(version): Update package versions [skip ci] 2023-07-06 16:23:25 +00:00
ohif-bot
3f296bdeb5 chore(version): version.json [skip ci] 2023-07-06 16:23:22 +00:00
Attila Hornok
0600858055
docs(ohif): broken link in the docs (#3509) 2023-07-06 12:16:09 -04:00
Alireza
4a184d0be7
fix(invert): allows volume viewport to invert and sync their invert status (#3514) 2023-07-06 12:09:34 -04:00
ohif-bot
f3a4f861b4 chore(version): Update package versions [skip ci] 2023-07-05 13:11:37 +00:00
ohif-bot
fc19912162 chore(version): version.json [skip ci] 2023-07-05 13:11:33 +00:00
Joe Boccanfuso
61595ce7d6
feat(Docker): Facilitate the ability to run the OHIF docker image over SSL (#3511) 2023-07-05 09:03:43 -04:00
ohif-bot
ffd53eff85 chore(version): Update package versions [skip ci] 2023-07-05 12:50:14 +00:00
ohif-bot
52a43c771a chore(version): version.json [skip ci] 2023-07-05 12:50:10 +00:00
Joe Boccanfuso
c3c132d268
fix(tracked-measurement): SR viewports disable jump to measurement (#3518) 2023-07-05 08:43:01 -04:00
ohif-bot
e742328ac1 chore(version): Update package versions [skip ci] 2023-07-04 18:46:19 +00:00
ohif-bot
90647b63a0 chore(version): version.json [skip ci] 2023-07-04 18:46:16 +00:00
Joe Boccanfuso
ed44ad7f4b
fix(segmentation): Use the series description for the segmentation label (#3517) 2023-07-04 14:39:39 -04:00
ohif-bot
b0a456a46c chore(version): Update package versions [skip ci] 2023-07-04 16:41:18 +00:00
ohif-bot
8b7db45641 chore(version): version.json [skip ci] 2023-07-04 16:41:14 +00:00
Joe Boccanfuso
b5599dde4e
fix(utils): remove undefined/null values from the PerFrameFunctionalGroupsSequence in combineFrameInstance. (#3515) 2023-07-04 12:33:51 -04:00
ohif-bot
f7b7131d70 chore(version): Update package versions [skip ci] 2023-07-04 16:05:36 +00:00
ohif-bot
d646c15c27 chore(version): version.json [skip ci] 2023-07-04 16:05:32 +00:00
Bill Wallace
64f8bb580a
fix(colormap): update opacityMapping to opacity and use simple list renderer(#3464)
Co-authored-by: Alireza <ar.sedghi@gmail.com>
2023-07-04 11:57:59 -04:00
ohif-bot
ce29bbe795 chore(version): Update package versions [skip ci] 2023-07-04 13:04:17 +00:00
ohif-bot
0bbcb4269d chore(version): version.json [skip ci] 2023-07-04 13:04:14 +00:00
Alireza
3efa793e60
fix(utils): remove undefined values in combineFrameInstance (#3513) 2023-07-04 08:57:14 -04:00
ohif-bot
3b50bd8cc4 chore(version): Update package versions [skip ci] 2023-07-03 14:41:24 +00:00
ohif-bot
cd553e29b2 chore(version): version.json [skip ci] 2023-07-03 14:41:21 +00:00
mccle
12dd5a2619
fix(typeError): Address SliceThickness.toFixed TypeError (#3510) 2023-07-03 10:31:46 -04:00
ohif-bot
f7a435c2f3 chore(version): Update package versions [skip ci] 2023-06-29 19:56:51 +00:00
ohif-bot
19f1da702f chore(version): version.json [skip ci] 2023-06-29 19:56:47 +00:00
Sofien-Sellami
14974b6973
fix(tmtv): Fusion_Viewport to allow displaySets to be changed (#3502)
Allows drag and drop of new sets of viewports to change them one at a time.
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2023-06-29 15:48:52 -04:00
ohif-bot
b4dbe5656b chore(version): Update package versions [skip ci] 2023-06-29 15:24:35 +00:00
ohif-bot
c6f7349fd7 chore(version): version.json [skip ci] 2023-06-29 15:24:32 +00:00
Sofien-Sellami
abe939bd20
fix(hp): Remove filtered displaySets from parameter from study protocolEngine.findMatch() (#3343)
The changes look good and are running now successfully.
2023-06-29 11:17:08 -04:00
ohif-bot
4d4dd45c23 chore(version): Update package versions [skip ci] 2023-06-29 15:04:16 +00:00
ohif-bot
7671b9faf4 chore(version): version.json [skip ci] 2023-06-29 15:04:12 +00:00
Sofien-Sellami
e653961858
Add support for array input for all constraints in HangingProtocolService validator (#3322)
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2023-06-29 10:56:40 -04:00
ohif-bot
aeb61f40da chore(version): Update package versions [skip ci] 2023-06-29 14:51:44 +00:00
ohif-bot
b5fb2461dd chore(version): version.json [skip ci] 2023-06-29 14:51:41 +00:00
Joe Boccanfuso
15ad8f29cd
fix(date formatting): Show study date as a fallback for an empty series date and show 'No Study Date' as a back up for both (#3483) 2023-06-29 10:43:56 -04:00
ohif-bot
fa37593696 chore(version): Update package versions [skip ci] 2023-06-29 14:38:20 +00:00
ohif-bot
08eed4cdf9 chore(version): version.json [skip ci] 2023-06-29 14:38:15 +00:00
Sofien-Sellami
b5b7d323c8
fix: allow volume3d viewport for SUV rendering (#3494)
Add checks to include volume3d viewports.
2023-06-29 10:30:41 -04:00
ohif-bot
8a8ae237d2 chore(version): Update package versions [skip ci] 2023-06-27 15:52:28 +00:00
ohif-bot
cf1e00fee0 chore(version): version.json [skip ci] 2023-06-27 15:52:24 +00:00
Joe Boccanfuso
ef4f28690a
fix(DICOM Upload): use correct Accept header for upload (#3498) 2023-06-27 11:44:46 -04:00
ohif-bot
c98211ccb5 chore(version): Update package versions [skip ci] 2023-06-23 00:55:55 +00:00
ohif-bot
71342fac8f chore(version): version.json [skip ci] 2023-06-23 00:55:52 +00:00
Alireza
52f419d188
feat(transferSyntax): Add customizable Transfer syntax through datasource config (#3406) 2023-06-22 20:47:50 -04:00
Salim Kanoun
ca3a0b56f7 update old configs 2023-06-22 21:26:26 +02:00
Salim Kanoun
1a91f210ab rename 2023-06-20 22:18:14 +02:00
ohif-bot
3503e6e9f4 chore(version): Update package versions [skip ci] 2023-06-20 14:33:52 +00:00
ohif-bot
0c51444066 chore(version): version.json [skip ci] 2023-06-20 14:33:48 +00:00
Alireza
83c453d1f3
chore(version): update cs3d version and add iframe documentation (#3474) 2023-06-20 10:26:05 -04:00
Salim Kanoun
fa73a458bd WIP (not tested yet) 2023-06-20 09:34:20 +00:00
ohif-bot
5670a1699d chore(version): Update package versions [skip ci] 2023-06-19 14:44:15 +00:00
ohif-bot
c529c0da9c chore(version): version.json [skip ci] 2023-06-19 14:44:10 +00:00
dxlin
d51211f6b9
fix(SR export): prevent empty sr description when export (#3173) 2023-06-19 10:35:53 -04:00
ohif-bot
2d8400f9d8 chore(version): Update package versions [skip ci] 2023-06-19 14:10:15 +00:00
ohif-bot
e12242a15c chore(version): version.json [skip ci] 2023-06-19 14:10:11 +00:00
Davy
8baf9deaf0
fix(i18n): add more fields i18n (#3262) 2023-06-19 10:02:48 -04:00
ohif-bot
a34a0b1a3a chore(version): Update package versions [skip ci] 2023-06-19 13:47:55 +00:00
ohif-bot
e1545b67da chore(version): version.json [skip ci] 2023-06-19 13:47:52 +00:00
wangxuan
d75305e70d
fi(proptype): Invalid prop WhiteLabeling of type object supplied... (#3152) 2023-06-19 09:40:31 -04:00
ohif-bot
242beb7b46 chore(version): Update package versions [skip ci] 2023-06-19 13:39:11 +00:00
ohif-bot
c5d4e97115 chore(version): version.json [skip ci] 2023-06-19 13:39:07 +00:00
Igor Octaviano
59cdc4ba9a
fix(SEG): Missing SpacingBetweenSlices prevents SEG rendering (#3344)
Co-authored-by: Igor Octaviano <igor.octaviano@radicalimaging.com>
2023-06-19 09:31:04 -04:00
ohif-bot
971c594791 chore(version): Update package versions [skip ci] 2023-06-19 13:22:44 +00:00
ohif-bot
c55136f55e chore(version): version.json [skip ci] 2023-06-19 13:22:41 +00:00
Jemshith T K
63e12dd651
docs(ohif-cli): update ohif-cli.md (#3461) 2023-06-19 09:15:30 -04:00
ohif-bot
c75c6af22f chore(version): Update package versions [skip ci] 2023-06-19 13:09:00 +00:00
ohif-bot
3c777ba58b chore(version): version.json [skip ci] 2023-06-19 13:08:56 +00:00
dxlin
e6f73a2025
fix(RT) : Make ContourImageSequence check under ROIContourSequence->ContourImageSequence optional (#3476) 2023-06-19 09:01:23 -04:00
ohif-bot
652e61a417 chore(version): Update package versions [skip ci] 2023-06-15 17:08:06 +00:00
ohif-bot
48bcdd6b50 chore(version): version.json [skip ci] 2023-06-15 17:08:01 +00:00
Joe Boccanfuso
cc73f15c8c
fix(Button): redesign of existing Button component for consistency (#3473) 2023-06-15 12:58:21 -04:00
ohif-bot
3dce70e624 chore(version): Update package versions [skip ci] 2023-06-13 12:59:35 +00:00
ohif-bot
1d00893c49 chore(version): version.json [skip ci] 2023-06-13 12:59:31 +00:00
Sofien-Sellami
2890635675
fix(overlay): Fix undefined volumes in customizable viewport overlay (#3435) 2023-06-13 08:51:01 -04:00
ohif-bot
a6d967a37e chore(version): Update package versions [skip ci] 2023-06-13 02:41:20 +00:00
ohif-bot
f23a4500f5 chore(version): version.json [skip ci] 2023-06-13 02:41:17 +00:00
Alireza
cadb559619
docs(readme): correct the docs images (#3470) 2023-06-12 22:33:54 -04:00
ohif-bot
a74e5a733f chore(version): Update package versions [skip ci] 2023-06-13 02:12:34 +00:00
ohif-bot
9326c4fffc chore(version): version.json [skip ci] 2023-06-13 02:12:31 +00:00
Alireza
14369414cf
docs(readme): update readme (#3469) 2023-06-12 22:05:01 -04:00
ohif-bot
cd1d097957 chore(version): Update package versions [skip ci] 2023-06-12 18:34:02 +00:00
ohif-bot
866647ae79 chore(version): version.json [skip ci] 2023-06-12 18:33:58 +00:00
Joe Boccanfuso
694b4a3f4d
chore(version): update cornerstone version (#3468) 2023-06-12 14:23:49 -04:00
Salim Kanoun
ad3ef3e8ef
Merge branch 'master' into customizable-TS 2023-06-09 21:45:03 +02:00
ohif-bot
0e52169677 chore(version): Update package versions [skip ci] 2023-06-08 17:33:51 +00:00
ohif-bot
b23cbc34dd chore(version): version.json [skip ci] 2023-06-08 17:33:48 +00:00
Alireza
c80dbb225e
chore(build): update the beta version [BUMP BETA] 2023-06-08 13:26:53 -04:00
Alireza
81b02a6e46 chore(build): update the beta version [BUMP BETA] 2023-06-08 13:14:34 -04:00
ohif-bot
ca07ef2928 chore(version): Update package versions [skip ci] 2023-06-07 13:40:47 +00:00
ohif-bot
48aa945839 chore(version): version.json [skip ci] 2023-06-07 13:40:43 +00:00
Bill Wallace
3d8cc9801a
chore(packages): Remove duplicated packages (#3456) 2023-06-07 09:33:13 -04:00
ohif-bot
655ccd310e chore(version): Update package versions [skip ci] 2023-06-07 13:13:40 +00:00
ohif-bot
20275d7d08 chore(version): version.json [skip ci] 2023-06-07 13:13:36 +00:00
Bruno Alves de Faria
874260340a
fix(storybook): Fixing broken UI Storybook components' pages (#3455) 2023-06-07 09:05:35 -04:00
ohif-bot
9ee13860a2 chore(version): Update package versions [skip ci] 2023-06-07 12:38:24 +00:00
ohif-bot
f43e45ab1a chore(version): version.json [skip ci] 2023-06-07 12:38:21 +00:00
Joe Boccanfuso
da5c32bce3
fix(modal and dialogues): fixes as per specifications (#3438)
Co-authored-by: Alireza <ar.sedghi@gmail.com>
2023-06-07 08:31:09 -04:00
Salim Kanoun
18c6a47dca
Merge branch 'master' into customizable-TS 2023-06-07 13:08:49 +02:00
ohif-bot
ffaffbdfa3 chore(version): Update package versions [skip ci] 2023-06-07 01:54:54 +00:00
ohif-bot
de35860ba6 chore(version): version.json [skip ci] 2023-06-07 01:54:51 +00:00
Alireza
eb1550536c
chore(build): update the beta version [BUMP BETA] 2023-06-06 21:47:51 -04:00
ohif-bot
6d7561946b chore(version): Update package versions [skip ci] 2023-06-06 21:47:27 +00:00
ohif-bot
fd8a9599d7 chore(version): version.json [skip ci] 2023-06-06 21:47:23 +00:00
Alireza
aaae33c7a2
chore(build): attach to workspace (#3449) 2023-06-06 17:40:00 -04:00
Alireza
0954fcb30a
chore(build): persiste the workspace (#3448) 2023-06-06 17:17:26 -04:00
Alireza
4938014a21
chore(build): separate version from build (#3447)
and cleared that thing and rotated it too
2023-06-06 16:49:18 -04:00
ohif-bot
ef9363e8b9 chore(version): Update package versions [skip ci] 2023-06-06 20:11:21 +00:00
ohif-bot
77a8447ceb chore(version): version.json [skip ci] 2023-06-06 20:11:17 +00:00
Alireza
fc8b948b0d
chore(build): separate half and half for publish (#3446) 2023-06-06 16:02:59 -04:00
Alireza
f742328fa1
chore(build): try to buld docker files (#3445) 2023-06-06 15:49:31 -04:00
Alireza
ac498a51bc
chore(build): try to buld docker files (#3444) 2023-06-06 15:00:37 -04:00
Alireza
5c09893de4
chore(build): try to reduce parallel builds (#3443) 2023-06-06 14:47:10 -04:00
Alireza
d8069f9101
chore(build): call script from current directory (#3442) 2023-06-06 14:25:53 -04:00
Alireza
008fa5b715
chore(release): separate version from build (#3441) 2023-06-06 14:15:36 -04:00
Alireza
828690cd3b
chore(build): try to build demo and docs (#3434) 2023-06-06 13:34:26 -04:00
Salim Kanoun
93f30f06c2
Fix tests 2023-06-06 16:57:19 +02:00
Salim Kanoun
50d2640876 accept both accept header and transfer syntax uid 2023-06-05 22:32:29 +02:00
Salim Kanoun
10e399d7b8
Merge branch 'master' into customizable-TS 2023-06-04 12:43:16 +02:00
Salim Kanoun
e4937e7473 update comments 2023-06-01 23:35:13 +02:00
Salim Kanoun
62dd2e78bd null safe 2023-06-01 23:32:16 +02:00
Salim Kanoun
c3654b7ddf rework TS 2023-06-01 23:18:54 +02:00
Alireza
869b8ced05 chore(circleci): comment release temporary 2023-06-01 08:02:40 -04:00
Salim Kanoun
de60586b71 fixes 2023-05-29 23:39:06 +02:00
Salim Kanoun
f670678cf0 WIP accept header 2023-05-29 23:28:17 +02:00
Salim Kanoun
56633a67d9
Merge branch 'v3-stable' into customizable-TS 2023-05-29 23:26:36 +02:00
Alireza
8c32023694
chore(demo): update demo data (#3425)
* chore(demo): update demo data

* fix sm

* fix netlify
2023-05-29 10:38:19 -04:00
Alireza
c7bcf1134d
fix(staticwado): SM and RT and update the server with new data (#3422)
* fix bugs for the RT for the new demo

* fix SM with the static-wado server

* remove thumbnail from tmtv

* migration guide

* fix stability for the rt struct

* apply review comments

* add loading indicator to SM

* pdf works

* try to fix relative bulkData

* fix the rest

* fix preflight for the SM

* fix typo

* apply review comments

* yarn lock
2023-05-29 09:04:49 -04:00
Salim Kanoun
8e2535a308 temp disabled of requested ts 2023-05-29 10:38:27 +02:00
Salim Kanoun
6da1734b6e Moving requested ts in createDicomWebApi (WIP) 2023-05-29 10:38:04 +02:00
Igor Octaviano
b684d80426
fix(DicomTagBrowser): Fix parsing problems that was limiting nested tags rendering (#3306)
* fix(DicomTagBrowser): Fix parsing problems that was limiting nested tags rendering

* Added a progress indicator when switching to a list of more than 1000 rows.

* Switched to using react-window to virtualize the dicom tag browser window.

* Added filtering to the DICOM tag browser with a new search UI widget.
Lots of tweaks and updates to the look-and-feel.

* Removed unused import.

* PR feedback including some UI tweaks.

* More PR feedback.

---------

Co-authored-by: Igor Octaviano <igor.octaviano@radicalimaging.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2023-05-26 11:42:25 -04:00
M.D
217b330d7b
fix(request): Cross origin issue with fetching image and video (#3416)
* Cross origin issue when
- rendering thumbnails from prerendered url
- playing videos

* empty commit to trigger CI/CD check

* empty commit to trigger CI/CD check
2023-05-26 08:32:00 -04:00
M.D
770c677394
fix(microscopy): viewport's overview panel - zoom marker (#3415)
* fix microscopy viewport's overview panel - zoom marker

* comment
2023-05-23 21:20:32 -04:00
Joe Boccanfuso
685520acab
feat(command): Added command and hotkey binding for navigate to next and previous display set. (#3409)
* fix(command): Added command and hotkey binding for navigate to next and previous display set.

* Centralized the sorting (function) of display sets since at least three
areas sort display sets: hanging protocols, study/thumbnail browser and
updateViewportDisplaySet command.

* Renamed some methods for clarity.

* Scrolling active thumbnail into view for an updateViewportDisplaySet

* Added a null check.

* Added check to minimize thumbnail scrolling.
2023-05-23 15:03:55 -04:00
Alireza
4a17177d81
chore(bump): use cornerstone 3d 1.x (#3414)
* chore(bump): use cornerstone 3d 1.x

* yarn lock
2023-05-22 15:26:18 -04:00
Joe Boccanfuso
c0fd4416ed
fix(Measurement): fixed line dashing of measurements in various scenarios (#3407)
* fix(Measurement): fixed line dashing of measurements in various scenarios

For a StackViewport simply rely on the SeriesInstanceUID being part of the
tracked measurements or not.

For a VolumeViewport first check the image id of the current image in the viewport
and then check the SeriesInstanceUID (like for a StackViewport) if an id is returned.
To reliably get the id of the current image, listen for the VOLUME_VIEWPORT_NEW_VOLUME event.

* Changes for PR comments.
2023-05-18 20:59:33 -04:00
Salim Kanoun
5ae6e9caf4 restaure config 2023-05-18 20:05:28 +02:00
Salim Kanoun
5e4043d99c add source of type correspondancies 2023-05-18 19:21:46 +02:00
Salim Kanoun
0e991d6bde config documentation 2023-05-18 19:13:36 +02:00
Salim Kanoun
2f63a9db80 init commit making TS customizable in OHIF settings 2023-05-18 19:06:26 +02:00
Mateus Freira dos Santos
f2004aee9e
fix(headers): Add all extra headers to WADO image loader (#3405) 2023-05-18 13:04:14 -04:00
Salim Kanoun
bedc379e97
Merge pull request #4 from OHIF/v3-stable
V3 stable
2023-05-18 17:35:16 +02:00
Joe Boccanfuso
856538537d
fix(Video): Added fallback checks for DICOM video (#3402)
* fix(Video): Added fallback checks for DICOM video
Added some docs for video, pdf and upload.

* Added separate headings for DICOM PDF, DICOM Video and DICOM Upload in the docs.

* Updated docs for singlepart data source configuration.
2023-05-17 16:50:27 -04:00
Alireza
f1c0581313
fix(thumbnail): it was commented out by mistake (#3403) 2023-05-17 14:13:19 -04:00
Alireza
e055f25ea6
fix(local): should use dicomlocal for localbasic (#3397)
* fix(local): should use dicomlocal for localbasic

* chore(github): styling for issues forms

* try to fix netlify

* apply review comments

* apply review comments
2023-05-17 12:45:06 -04:00
Alireza
dab6db3244
docs(migration): add migration guides for v2 to v3 (#3387)
* wip

* more on migration guides

* review

* review

* apply review comments

* Update docs for sop class handler

* Updated notes on display sets

* Docs note

---------

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2023-05-16 17:36:29 -04:00
Joe Boccanfuso
052653f3b2
fix(Image Download): various bug fixes for image download (#3396)
- prevent non-cornerstone viewports from showing the image download dialogue
- passing the rendering engine id to ToolGroup.addViewport
- fixed the keep/dismiss aspect feature
2023-05-16 14:50:34 -04:00
Alireza
1881ce5cbc
feat(custom displayOptions): add custom options to every level of hp (#3372)
* feat(custom displayOptions): add custom options to every level of hanging protocols

* move set preset down to cornerstone3d

* works

* fix tmtv based on new api

* fix unit test

* close

* review1

* upgrade packages

* update packages

* apply review comments

* recursive call

* less copy

* apply review comments

* fix e2e tests

* apply review comments

* revert

* apply review comments

* apply review comments

---------

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2023-05-16 13:07:37 -04:00
Joe Boccanfuso
045e54aa02
fix(Measurement): Use dashed lines for measurments of viewports where getCurrentImageId returns undefined (#3392)
* fix(Measurement): Use dashed lines for measurments of viewports where getCurrentImageId returns undefined

* Updated cornerstone3d packages

* Fixed code comment.

* Removed unused imports.
2023-05-16 10:02:10 -04:00
Joe Boccanfuso
52eb0edd6f
fix(dicomlocal): navigate /local to the work list and /localbasic to the (basic) viewer (#3389)
* fix(dicomlocal): navigate /local to the work list and /localbasic to the (basic) viewer
For TMTV, consider both the forward and back slash separator for modalities.

* Fix to TMTV isValidMode method.

* PR feedback:
- replace forward slashes with back slashes for modalities in the WorkList instead of in the Mode.

* Added query.series to DicomLocalDataSource.
2023-05-15 16:23:53 -04:00
Ashish Narnoli
af8bb27575
feat: query string dynamic app config (#3391)
* feat: query string dynamic app config

* fix: bug fix and couple of very small improvements
2023-05-15 14:52:48 -04:00
Bill Wallace
f4be73b5cf Fix jest config for newer jest 2023-05-15 10:09:54 -04:00
Bill Wallace
d5c5951e57
fix(SR): KO series being displayed in browser list (#3382)
* fix: KO series being displayed in browser list

* fix sr for volume viewports

* move highlight labelmap to RAF

* remove commented code

* fix the hydration bug for the SR

* apply review comments

* revert the key images for sr

* Remove some obsolete changes

* set initial image for sr instead of jump

* Remove viewportType stack

---------

Co-authored-by: Alireza <ar.sedghi@gmail.com>
2023-05-15 08:23:13 -04:00
Joe Boccanfuso
4172d0427b
fix(Measurements): in MeasurementService keep a separate set of unmapped measurements (#3385)
* fix(Measurements): return {} instead of undefined for getSOPInstanceAttributes

* PR feedback:
- separated measurements from non-acquisition plane
- reverted to previous behaviour of returning undefined in getSOPInstanceAttributes

* Added unit tests for unmapped measurements.

* PR feedback: added comments to the unmappedMeasurement used in the unit tests.
2023-05-12 16:24:00 -04:00
Alireza
4fd81b5cd2
fix(local): fix modalities not showing in local (#3388)
* fix various bugs

* revert back docusaurus for styling issues
2023-05-12 15:04:19 -04:00
Alireza
84cb709b44
feat(panel and auth): fix study panel to not rely on priors and add token param to url (#3381)
* fix: multiframe

* fix the unnecessary use of prior since some servers dont like it

* add authentication via token in url

* add data citation

* add resources

* upgrade packages

* yarn lock

* apply review comments
2023-05-11 10:01:33 -04:00
Joe Boccanfuso
cba57a1b65
fix(UI): fixed results per page select menu (#3384) 2023-05-11 09:52:32 -04:00
dxlin
656f9cf761
docs(HP): update for sameAs attribute doc (#3383)
Update HangingProtocolService doc to include example and instructions to use custom attributes included in @ohif/extension-test. Example shows usage of sameAs for frame of reference check in tmtv hanging protocol.
2023-05-10 15:04:49 -04:00
Joe Boccanfuso
8eaa1877fd
fix(DICOM PDF and Video): fixes for local DICOM load and remote data sources (#3374)
* fix(DICOM PDF and Video)
- added retrieve.directURL for local DICOM load data source; it returns a data URL
- fixed various checks for video using transfer syntaxes and SOP class UID with number of frames
- added call to 'rendered' endpoint for those data sources that support it; others get BulkDataURI

* Added DOC (PDF) and OT (for video in particular) to list of non-image thumbnail modalities.

* Fixed broken e2e tests.
2023-05-10 12:42:48 -04:00
Joe Boccanfuso
0eda151418
fix(UI) - fixed the spacing and positioning of the close button in the SnackbarItem component (#3380) 2023-05-10 09:07:17 -04:00
Pavan Kumar Jadda
55f996cf48
fix(service-worker): fixes service worker issue in init-service-worke… (#3378) 2023-05-09 17:10:09 -04:00
Alireza
0b4c3649e7
fix(dynamic load): make sure required extensions are loaded (#3377)
* fixes some bugs

* make cornerstone default for now
2023-05-09 12:26:16 -04:00
Joe Boccanfuso
98d966514a
fix(Measurements): edit measurement while SEG loaded (#3375) 2023-05-09 12:15:26 -04:00
Bill Wallace
a688f03fdb
feat(App): Loads mode extensions on demand (#3312)
* feat: Dynamic plugin imports

* Remove unused file

* Fix basic dev mode

* Fix the modes issue that Joe requested

* Merge fixes

* Add the ability to publish directory contents

* PR review changes

---------
2023-05-08 21:18:35 -04:00
Alireza
2f355fa158
fix(cli): better support for external modules and toolGroups in templates (#3364)
* choe(modes, components): improved readability

This commit includes changes to improve performance in the basic-dev-mode and Thumbnail components.
Additionally, a change in the webpack configuration file was made to ignore ".min.js.map" files.
The defaultDataSourceName was also added to several configuration files, and whiteLabeling code was removed
from the local_orthanc configuration file.

* fix(cli): better path management and add dependencies

* better docs

* add default tool group to the templates

* add review comments

* apply review comments

* try to fix test

* fix thumbnail in tests
2023-05-08 15:49:28 -04:00
Pedro H. Köhler
187e6b5f30
chore(packages): bump deps to fix vulnerabilities (#3366) 2023-05-08 14:05:03 -04:00
Pedro H. Köhler
285dff31c5
chore(packages): bump deps to fix vulnerabilities (#3366) 2023-05-08 14:04:39 -04:00
Alireza
969e7698fa
chore(bump cs3d): bump package and add caching to webpack (#3353)
* chore(bump cs3d): bump package and add caching to webpack

* remove test for now
2023-05-03 12:30:02 -04:00
Alireza
3cd01c7264
chore(lerna): add lerna caching to build and tests (#3350) 2023-05-02 15:39:16 -04:00
Alireza
ef24d89930
fix(HangingProtocolService): Add callback property & update description (#3349)
The description for the numberOfDisplaySetsWithImages property was corrected. The update also involves adding a callback property that returns several objects (matchedViewports, viewportMatchDetails, displaySetMatchDetails) and returning them from the method 'findViewportProtocols'. The refactored code also has better readability.
2023-05-02 13:31:51 -04:00
Joe Boccanfuso
0f85b1a681
fix(DICOM Upload): Decreased the minimum height for the upload dialog contents to better fit some laptops. (#3347) 2023-05-02 09:24:53 -04:00
Pavan Kumar Jadda
89936a5b50
chore(lerna): upgrades lerna to 6.x (#3215)
* feat(core): upgrades lerna to 6.x.x

* feat(core): upgrades lerna to 6.5.1

* feat(core): updates lerna to 6.x.x

* feat(core): updates default config
2023-05-01 20:32:07 -04:00
David Smith
0e3491d6bb
feat(proxy datasource): JSON server configuration launch (#2791)
* feat: delegating dicom web proxy datasource

* fix: configurably allow WADO image loader to issue preflight OPTIONS request

* Added documentation and fixed up some error handling from PR review

* review comments changes

* another small code review fix
2023-05-01 12:58:53 -04:00
Bill Wallace
b5b936b53e
fix(jump): Jump to measurement wasn't jumping when presentation already existed (#3318)
* fix: Jump to measurement after presentation store

* Fix initial load of DICOM SR

* Fix measurement highlight issues

* Clear measurements changed to array

* Fix merge issues

* PR comments

* Removed unused formatting.  Change to single event

* Fix the unit test

* PR review comments

* refactor(viewport): simplify imports, align destructuring

Simplify import statements by removing unused imports, organize existing imports, and align destructured imports consistently across the component.

---------
2023-05-01 12:54:33 -04:00
Joe Boccanfuso
66f6e3eade
feat(DICOM Upload): Added new DICOM upload dialogue launched from the worklist page (#3326)
* feat(DICOM Upload)
OHIF #3297
- DicomWebDataSource.store.dicom now accepts an ArrayBuffer of data sets to store
- DicomWebDataSource.store.dicom now also accepts optional callbacks to track upload and an AbortSignal object to cancel upload
- Added DicomFileUploader class that performs and tracks the upload of a DICOM file
- Added various UI pieces for the upload: DicomUpload, DicomUploadProgress, DicomUploadProgressItem
- ProgressLoadingBar was extracted from LoadingIndicatorProgress so it can be reused
- Modal dialogues can now optionally prevent an outside click from closing the Modal

* Passing an XMLHttpRequest to the dataSource.store.dicom method instead of callbacks and AbortSignal.
Cleanup of various UI pieces to minimize code and increase readability.

* Made the DicomUpload component a customization module exported by the cornerstone extension.

* Exposed a copy of the data source configuration via the IWebApiDataSource interface.
Added dicomUploadEnabled to a data source's configuration.

* Code clean up.

* Upgraded the dicomweb-client version to one that provides the ability to
pass a custom HTTP request. DICOM upload uses that custom HTTP request
to track progress and cancel requests.

* Distinguished between failed and cancelled uploads.

* Allow no selection in the upload dialogue.
Fixed the styling of various progress information so that everything aligns.

* Switched from cornerstone wado image loader to cornerstone dicom image loader for DICOM upload.

* Added special cancelled icon to differentiate from failed.

* Added a bit of spacing between the upload progress bar and percentage.

* Fixed minor issue with upload rejection.

* Performance improvement for cancel all uploads:
- use React memo for each upload item progress (row)
- do not await each request of a cancel all

* Fixed various padding/spacing for the DICOM upload drop zone component.
Changed the border dashing for the DICOM upload drop zone to be a background image gradient.
Added hover and active effects to the 'Cancel All Uploads' text.
2023-04-28 16:13:47 -04:00
Alireza
f377153b60
fix(viewportDialog): viewportDialoge not appearing in non-tracked viewports (#3071)
* fix: viewportdialoge not appearing in non-tracked viewports

* feat(viewports): Introduce useViewportDialog and remove deprecated API

This commit introduces the `useViewportDialog` hook and replaces the deprecated `viewportDialogApi` with the new `viewportDialogState`. Additionally, the notifications in `OHIFCornerstoneRTViewport` and `OHIFCornerstoneViewport` have been removed. Finally, the `CinePlayer` component now accepts optional parameters.

* fix tests
2023-04-28 11:06:03 -04:00
Alireza
c9d3c08cb6
feat(cst): Add new command to get nearby annotation tools (#3327)
* feat(cst): Add new command to get nearby annotation tools
This commit adds a new command `getNearbyAnnotation` to the `commandsModule.ts` file that identifies nearby annotation tools excluding Crosshairs and ReferenceLines. It also removes an unused mapping to `Crosshairs` in `initMeasurementService.js` and changes the command run in `findNearbyToolData.ts` to `getNearbyAnnotation`.

* perf(cornerstone): Improve performance by optimizing tools

Removes unnecessary imports to improve app's performance. Changes how annotations are detected on the `commandsModule.js` file by fetching the `isAnnotation` property of the tool instance if available. Updates `CrosshairsTool` and `ReferenceLinesTool` to not be annotations anymore. Adjusts the `localhost` URL ports for the `dcm4chee-arc` service interface on `local_dcm4chee.js` to allow for more efficient server communication.

* feat(cornerstone): Add CornerstoneServices type and ToolGroupService.getToolGroup to get tool group by ID or active viewport

This commit introduces the new CornerstoneServices interface to the code and adds the ToolGroupService.getToolGroup method, which can retrieve a specific tool group by ID or from the active viewport. The older _getToolGroup method has also been removed from commandsModule. When no tool group ID is provided, this method now retrieves the tool group from the currently active viewport with the help of getActiveViewportEnabledElement. Additionally, the required reference to @ohif/core has been removed.
2023-04-28 10:14:14 -04:00
Braden Morley
fe7fa6e5bf
fix(ui): updated input fields to match new color scheme (#3323)
* Updated input fields to match new color scheme

Added small input text fields and fixed coloring

* Added tailwind changes to viewers file
2023-04-27 21:01:53 -04:00
M.D
075008c674
feat(microscopy): add dicom microscopy extension and mode (#3247)
* skeleton for dicom-microscopy extension

* skeleton for microscopy mode

* [feat] ported @radicalimaging/microscopy-dicom to OHIF's default extension

* [feat] ported microscopy mode from private repo

* added new definitions to the package.json

* webpack configuration update for microscopy extension

* register new icons for microscopy tools

* fixes to the microscopy extension and mode

* trivial error fix - typescript type import error

* link microscopy extension with default OHIF app plugin config

* demo config fix

* fix logs

* remove unsed imports

* [fix] loading of microscopy

* [fix] webworker script loading, normalizing denaturalized dataset

* found the latest version of dicom-microscopy-viewer that works with current OHIF extension : 0.35.2

* hide thumbnail pane by default, as we have issues with

* comments

* remove unused code

* [feat] microscopy - annotation selection

* [feat] microscopy - edit annotation label

* wip

* [bugfix] dicom-microscopy tool

* [bugfix] dicom microscopy annotations

* [fix] mixed-content blocking caused by BulkDataURI

* [fix] microscopy measurements panel - center button

* [fix] microscopy measurements panel - styling

* [fix] microscopy - controls

* fix local loading of microscopy

* fix local loading of dicom microscopy

* fix typo - indexof to indexOf

* [fix] remove unused icons

* remove commented out lines from webpack configuration

* platform/viewer/public/config/default.js - revert accidental changes

* [refactor] redirecting to microscopy mode on Local mode

* attribution to DMV and SLIM viewer

* [fix] code review feedbacks

* fix thumbnails

* [fix] microscopy - fix old publisher.publish() to PubSubService._broadcastEvent()

* [fix] interactions, webpack config, roi selection

* [feat] microscopy - remove select tool  from UI

* microscopy author

* [fix] saving and loading SR

* [bugfix] - missing publish() function in MicroscopyService, replace with _broadcastEvent

* remove author section from readme

* refactor SR saving feature

* fix webpack config after merge

* [bugfix] repeated import

* fix e2e

* webpack configuration

* hide "Create report" button for microscopy
2023-04-27 20:53:52 -04:00
Alireza
dd3944a87c
feat(storybook): Refactor Storybook to use Typescript (#3341)
* feat(storybook): Refactor Storybook to use Typescript

This commit updates the Storybook configuration to use Typescript, including renaming `main.js` to `main.ts`, updating `core.builder` and `framework.name` to use `@storybook/builder-webpack5` and `@storybook/react-webpack5`, respectively. The code also adds options to `addon-docs` to enable adding GFM support to the generated docs. Additionally, the commit modifies `staticDir`, removes outdated addons, and makes various devDependencies and PostCSS updates to align with Storybook 7.x.x. Finally, the commit removes some unused code and relocates `Button` and `AboutModal` story files.

* apply review comments

* update yarn lock
2023-04-27 12:13:27 -04:00
Joe Boccanfuso
51cb0519fc
fix(Browser history): fixed NPE when navigating a study via browser history and history navigation is now available via the navigateHistory command (#3337)
* fix(Browser history):
- fixed an NPE when navigating to a different study via the URL
- exposed browser history navigation via a command

* Added documentation for the navigateHistory command.
Moved the history object from UI to viewer.
2023-04-27 10:46:23 -04:00
Alireza
eea0ed487b
feat(dicomImageLoader): replace wado image loader with the new library (#3339)
* use new dicom image loader instead of cswil

new dicom image loader fails

update dicom image loader

update yarn lock

modify webpack

* update webpack

* fix webpack

* update package versions

* update package versions
2023-04-26 20:55:56 -04:00
Alireza
66863281c4
feat(RT): add dicom RT support via volume viewports (#3310)
* feat: initial RT support

* make the segmentation service work with representation data

* feat: make segmentation service work with representations

* fix rtss vis

* fix: rt hydration

* fix the rendering of rt names

* fix imports

* refactor: Modify status and click handling for hydration of RTStructures

Modify status and click handling for hydration of RTStructures by renaming `onPillClick` to `onStatusClick` in `OHIFCornerstoneRTViewport.tsx` and `_getStatusComponent.tsx` files. Also, update initial segmentation configurations in `PanelSegmentation.tsx` and simplify configuration changes and values for segmentation service in `SegmentationService.ts`. Finally, remove console debug in `CornerstoneViewportService.ts`.

* wip for highlighting contours

* refactor rt displayset code

* review code update

* update cornerstone dependencies

* refactor: Update license year, version number, and minor code cleanup

This commit updates the license year in several files, updates the version number in package.json, and contains minor code cleanup in two files.

* add bulkdataURI retrieve for RT

* fix package version

* apply review comments

* apply review comments

* apply review comments

* feat(panels): refactor and streamline segmentation configuration and inputs

Rewrote state hooks and streamlined the configuration input for `PanelSegmentation` to be more verbose and reusable. Included several new input types, including the `InputRange` component which now shows a fixed floating value based on the step provided. The `SegmentationConfig` component now works with dynamic values controlled by `initialConfig`. These changes should improve function usability and make the code more maintainable going forward.

* fix various bugs

* fix contour delete by upgrade cs3d version

* feat(viewport, inputNumber, segmentationConfig, orthanc): Implement minimum and maximum values for input number components, and useBulkDataURI for Orthanc configuration. Compare measurement view planes with absolute viewport view planes in Cornerstone viewport.

* update yarn lock
2023-04-26 12:21:08 -04:00
Bill Wallace
69d8e6a191
fix(SR): When loading DICOM SR, only one measurement is shown with no way to show others (#3228)
* fix: Make the cornerstone sR viewport show all measurements

* PR fixes

* PR fixes

* Add a DICOM SR hanging protocol

* Duplicate the hanging protocol for seg as well

* PR requested change

* PR requested changes

* PR fixes plus merge update fixes

* PR fixes and integration test fix

* PR - documentation
2023-04-25 17:25:10 -04:00
Leonardo Campos
dc61d87238
chore(version): updated Orthanc from 1.5.7 to 1.11.0 (#3330) 2023-04-20 12:39:37 -04:00
Bill Wallace
c508a2b6bc
feat: Add a new hanging protocol @ohif/mn (#3305)
* feat: Add a new hanging protocol @ohif/mn

* Add @ohif/seg example

* PR comments and a couple more fixes to make things cleaner

* PR comment

* Added an example to cause the PR checks to rerun
2023-04-18 11:55:25 -04:00
Bill Wallace
6cf271d006
fix: Service consistency typing (#3309)
* Use more consistent type/structure for services

* Fix restoring SR so the tests described work

* One more typed service

* Added types for the Cornerstone library

* Couple more type fixes
2023-04-18 11:17:50 -04:00
M.D
47c25f4364
feat(measurements): add CircleROI Tool (#3211)
* [refactor] measurement service mapping files - rename to .ts files

* [fix] RectangleROI - measurement service mapping _getReport() function - tool name fix

* [feat] added CircleROI tool from updated cornerstone3D

* [refactor] fix for typescript strong typing warnings

* [feat] cornerstone-dicom-sr extension - added CircleROI tool

* [feat] added toolbar button for CircleROI tool

* [doc] doc updates for CircleROI tool

* [update] library - dcmjs to 0.29.5

* [fix] roundNumber() function when given strings

* [fix] refactor after upgrading conerstonejs library 0.49.0

* yarn.lock file change
2023-04-17 08:23:03 -04:00
Sofien-Sellami
83b4606357
fix(hp): Add displaySetMatchDetails and displaySets to options in (#3320)
The sameAs function requires displaySetMatchDetails and displaySets to compare attributes between display sets, but these properties were not being passed into the options object. This commit adds the necessary lines of code to include displaySetMatchDetails and displaySets in the options object, fixing the issue where the  custom attribute function 'sameAs' was missing required data.
2023-04-13 23:08:13 -04:00
dxlin
1173e7de6c
fix(ROIThreshold): fix setWeight not updating properly for ROIThreshold panel (#3315) 2023-04-06 14:05:46 -04:00
Bill Wallace
d3da969d23
fix(viewport): Initial blank image on SR/SEG initial display (#3304)
* fix: Blank display area on initial DICOM SR load

* Docs

* Fix a NPE
2023-04-05 17:26:51 -04:00
Bill Wallace
45a34ae0fe
fix(URL): allow multi filter query (#3314) 2023-04-05 16:37:37 -04:00
Mateus Freira dos Santos
25b4f8ed97
feat(App): support async config function (#3313) 2023-04-05 16:20:14 -04:00
Ibrahim
b5aa5df575
fix(SRTool): Ellipse Display for DICOMSR Tool (#3307) 2023-04-05 15:09:09 -04:00
Ouwen Huang
af50815ebb
fix(crosshairs): suppressed error for crosshair (#3237) 2023-04-05 14:29:20 -04:00
Bill Wallace
50ed96ff73
feat(URL): add param for initial series and sop uids to display (#3265)
* feat: Allow navigating to a specified series and sop instance

This was a feature in OHIF v2, so adding it to v3, albeit with new
parameters.

feat: Allow comma separated as well as repeated args params

* docs

* Test fixes

* feat: Navigate to SOP selected - PR fixes

* Updated docs

* PR fixes
2023-04-05 12:59:56 -04:00
Salim Kanoun
5b7dc9e9c3
Merge pull request #3 from OHIF/v3-stable
V3 stable
2023-04-05 14:02:23 +02:00
rodrigobasilio2022
226244a26c
feat(multiframe): enhanced support for multiframe dicom (#3164)
* Changes in cswil version and multiframe

* Minor changes

* wip

* Adding support for NM multiframe images

* Applying PR suggestions

* fixing package versions

* Restoring default.js config file

* Check if NM subtype is reconstructable

* Restore default.js values

* refactore code

* feat: add flag for strict zspacing

---------

Co-authored-by: Alireza <ar.sedghi@gmail.com>
2023-03-31 22:21:16 -04:00
Bill Wallace
5e42a42b5f
fix(viewports): The display of linked viewports during drag and drop has a race (#3286)
* fix: The display of linked viewports during drag and drop has a race

* PR review comments

* fix: Segmentation display two up

* Removing console logs

* Fix the blank viewport can have stuff added to it

* Fix the null name on HP module

* Fix the navigate to initial image

* Fix the nth interleave loader

* Fix the unit tests

* PR comments - docs mostly

* fix: Exception thrown on change displayset after double click
2023-03-31 11:58:48 -04:00
Alireza
ca3b83b2b6
feat(tmtv): add more stages to pt/ct (#3290)
* feat(tmtv): add more stages to pt/ct

* make error stage change to info

* apply review comments
2023-03-30 10:01:48 -04:00
Joe Boccanfuso
d5ff590dfc
feat(DoubleClick): double click a viewport to one up and back (#3285)
* feat(DoubleClick): double click a viewport to one up and back

Added a toggleOneUp command that puts the active viewport into a 1x1 grid layout
and it toggles out of 'one-up' by restoring its saved 'toggleOneUpViewportGridStore'
from the StateSyncService.
Added double click customization for the Cornerstone extension with the
default double click handling being the toggleOneUp command.
Added a cypress test for the double click functionality.

* PR feedback:
- tracked viewport measurements no longer show as dashed when toggling one up
- disallowed double clicking near a measurement
- updated cornerstone3D dependencies to fix double click of TMTV and volume viewport 3D
- created ViewportGridService.getLayoutOptionsFromState

* Updated the ViewportGridService docs.

* Switched to using 'cornerstoneViewportClickCommands' and consistency with the context menu clicks.
2023-03-29 15:39:51 -04:00
Alireza
4734b3bac6
fix(volumeLoad): should not have missing slices when loading (#3287)
* fix(volumeLoad): should not have missing slices when loading

* add review comments
2023-03-29 09:40:22 -04:00
Bill Wallace
2f33e42004
fix: Store hotkeys to specified name (#3280)
* fix: Store hotkeys to specified name

* fix: Move hotkey name into a new hotkey object
2023-03-28 12:15:55 -04:00
Bill Wallace
b2128976a3
Fix/hp validate match offset 2 (#3279)
* fix: Validate provided display sets other than 0

* Build fix
2023-03-28 11:18:33 -04:00
Joe Boccanfuso
ed7ded05db
fix(Volume3DViewport): Replacing the volume 3D viewport with another reconstructable series (#3281)
* fix(Volume3DViewport) - Replacing the volume 3D viewport with another reconstructable series fails
- updated cornerstone3D core package dependency
- checked for null presentations when setting presentations
- added viewportIndex as a dependency for enabling and disabling an OHIFCornerstoneViewport

* PR feedback - removed viewportIndex useEffect dependency for enabling/disabling OHIFCornerstoneViewport
2023-03-27 15:03:16 -04:00
Joe Boccanfuso
d3200a6383
fix(Volume3DViewport): Added pan and zoom (#3283) 2023-03-27 12:17:38 -04:00
Bill Wallace
8e9d7bd2bb
feat(findingSite): Allow customizing the measurement panel and show site/finding (#3155)
* feat: Allow customizing the measurements panel.

Also includes default display of the site/finding values from the DICOM
SR object.

Update fixes

PR review comments - move the recordInteraction to COmmandsManager.run

PR fixes

fix: Dependency updates to allow right click to be recognized

PR fixes

* Use newer CSWIL

* Make both the base measurements and the tracking measurements show codes

* Fix the right click context menu bringing up menu
2023-03-24 16:45:21 -04:00
Bill Wallace
dd22e37e4c
fix(contextMenu): fixes for context menu icon (#3275) 2023-03-22 18:04:44 -04:00
Bill Wallace
bc642fd2b6
feat: Allow configurable context menus (#2894)
* feat: Context menu

feat: Custom context menu

Adding documentation

PR updates

* fix: Capture tool exception

* PR updates

* Add fully worked out examples in the basic test mode/extension

* Fix the menu display

* fix: Make the commands on clicks much more configurable

* Wait for load before double clicking

* docs

* PR changes - nothing functional, just moving things endlessly

* PR comments

* PR changes - rename the default context menu

* Renamed the cornerstoneContextMenu to measurementsContextMenu

* Add chevron right to the sub-menus
2023-03-22 17:45:28 -04:00
Alireza
4e94b588a7
fix(SegmentationPanel): should be able to hide and only show one segment (#3270)
* fix(SegmentationPanel): should be able to hide and only show one segment

* fix imports

* bump package versions
2023-03-22 12:44:52 -04:00
Braden Morley
3b6822e7b6
fix(ui): autoscroll to new measurement on measurement table (#3223)
Fixed scrolling for measurement clicks

changed import
2023-03-21 21:36:53 -04:00
Joe Boccanfuso
550918dd31
feat(VolumeViewport3D): add volumeViewport3Dd sample hp (#3241)
* feat(VolumeViewport3D)
- importing and using Cornerstone 3D's VolumeViewport3D viewport
- added mprAnd3DVolumeViewport hanging protocol
- allowed for W/L preset to be applied to a viewport

* Updated cornerstone core dependency

* Removed pan and zoom from the volume3d tool group so that tackballrotate is never dropped for that viewport.
Removed overlays from 3D volume viewport.
Throw an error and display a message whenever an unapplicable tool is selected.

* The default/initial orientation for a 3D volume viewport can now be set.
Using the 'interleaveTopToBottom' image load strategy for the 'mprAnd3DVolumeViewport' hanging protocol.

* Do not set orientation for stack viewport.
2023-03-21 16:09:50 -04:00
Bill Wallace
5ad5bd232d
fix(tmtv): hanging protocol state sync (#3269)
* fix: TMTV mode and message on drag and drop/toggle MPR

* Tweaked some packages to force a rebuild
2023-03-21 14:25:56 -04:00
Bill Wallace
ee4e8a4105
fix: Hanging protocol state fixes (#3242)
* fix: Some residual issues with hanging protocol after state sync

fix: Some issues introduced by the state syncing changes

* fix: PR fixes, mostly code cleanup

* Improve a race condition in an automated test

* Remove obsolete code

* PR fixes
2023-03-20 15:11:21 -04:00
Edwin Chebii
544bf55a4f
docs: Update sop-class-handler md (#3217)
i don't know if it was intentional but should their be a closing square brackets for sopClassUids
2023-03-15 15:44:34 -04:00
Bill Wallace
803f638401
feat: state sync service and hanging protocol updates to preserve state (#3131)
* feat: Add state sync and use it to remember viewport grid info

fix: Version updates

Fixes for toggling MPR mode

Fix the display when the interleaved load module fails

Fix the memory of the state to restore correctly

PR fixes for the state sync service

PR fixes

PR fixes

PR fixes

Added a hack warning to remove volumeDeactivate

Fixes for TMTV colormap setting

Fix the casing

Missed renames

fix: tests not running due to variance in ordering

Reverting some fixes to change case

PR changes - mostly comments and minor improvements

fix: All display sets were being updated on drag and drop

PR fixes - mostly renames

PR fixes

Test support for OHIF, for HP branch

test: Add at least a minimal set of automated tests for hanging protocols

Docs

PR fixes

Merge fixes

DOCS updates

Add an example of the mn hanging protocol

PR fixes

PR fixes

PR fixes

* Fix the drag and drop

PR fixes

* PR changes - update default keys for next/previous stage

* fix: Was storing the custom viewport grid too aggressively

Caused by a PR change misspelling a variable
2023-03-15 12:41:41 -04:00
Salim Kanoun
00099c0136 Merge remote-tracking branch 'upstream/v3-stable' into v3-stable 2023-03-12 08:01:06 +01:00
Bill Wallace
b7fff77e17
fix(segmentation): failing to render SEG because it was on default tool group (#3222)
* fix: Segmentation service fixes for secondary volumes

* Remove toolgroupID in promptSeg
2023-03-10 13:57:23 -05:00
Alireza
3f20b41c17
fix(tmtv): there should be no CT range for max suv settings (#3232) 2023-03-10 13:07:56 -05:00
Joe Boccanfuso
5670a4d8d1
feat(PanelService): Left or right side panel to auto start as closed but auto open when needed (#3212)
* feat(SidePanel)
OHIF issue #3135
- Added a method to set a callback for a Panel to invoke when it is ready
to be shown (e.g. its data is loaded).
- Implemented such methods for both the segmentation and measurement panels.
- The SidePanel component now adds a callback to Panel components so that
it will automatically open a Panel that was initially closed and yet to
be opened.
- Updated the OHIF documentation accordingly.

* PR feedback
- added a PanelService that centralized much of the logic that existed in panel PanelModule
- the SidePanel subscribes to PanelService.EVENTS.ACTIVATE_PANEL for each of its child panels

* Removed the PanelMeasurementTableTracking setMeasurementPanelContentReadyCallback method.

* Made the forceActive flag in the PanelService optional and defaulted it to false.

* Fixed failing top level exports unit test.

* - PanelService subscriptions are now per panel (id) so subscribers do not
necessarily need to check the panel id in the event when it is fired
- PanelService activate panel trigger subscriptions are now returned
so that they can be (better) managed outside of the service
- updated/created the various documentation for panels and PanelService

* Clarified various documentation.
Moved the code to add the activate panel triggers out of the extensions
and into the longitudinal mode.

* Removed the openWhenPanelActivated flag.
PanelService now conforms to extending PubSubService like the other services.
Updated various documentation.

* Fixed failing e2e, mpr test.

* Renamed the ActivatePanelTriggers type properties.
The ExtensionManager now sets the id of various modules as a property on each of those modules.
2023-03-09 22:30:09 -05:00
md-prog
e4e62e9e14
feat(customizableOverlay): Add customizable overlay info (#3061)
* overlay customization

* custom overlay definition and examples

* minor fix - import statement difference between cornerstone and cornerstone3D

* move "VOI" and "Zoom" calulation to the ViewportOverlay component, make OverlayItem fairly dull

* type specifications

* follow up fixes for CustomizationService changes on upstream

* [fix] various fixes related to custom overlays (formatting, toggling)

* [fix] various fixes related to custom overlays (formatting, toggling)

* right side overlay panels - align right

* [fix] remove "notification" from toggleOverlay command

* comments

* [refactor] remove unused imports

* documentation of customizable overlay configuration

* prettify

* review of documentation of customization service

* fix useCallback() dependencies

* fix useCallback dependencies

* documentation for customization service

* documentation for customization service
2023-03-09 17:12:08 -05:00
Braden Morley
b9dbc5b3a5
fix(thumbnails): expand multi studies scrollbar (#3224)
made per study scrollbars visible
2023-03-09 14:25:05 -05:00
Alireza
7a591b87a2
feat(tmtv): add ct ranges for thresholding (#3225)
* Add CT volume in PET ROI Thresholding (#3053)

* Add CT volume in PET ROI Thresholding

* Change UI ROI Threshold config

* Refactoring ROI Threshold configuration Panel

* fix menus

* try to fix build preview

* try to fix build preview

---------

Co-authored-by: rodrigobasilio2022 <114958722+rodrigobasilio2022@users.noreply.github.com>
2023-03-07 22:47:16 -05:00
Alireza
f14e23cb8b
fix(ui): worklist had layout shift (#3218)
* fix(ui): worklist had layout shift

* apply review comments
2023-03-06 09:47:26 -05:00
Alireza
38d452e17d
feat(measurementService): use the new api for annotation manager in cs3d (#3206)
* fix OHIF to use the new api for annotation manager in cs3d

* bump package versions

* fix tests

* remove unnecessary code
2023-03-02 17:11:51 -05:00
Joe Boccanfuso
35d0787211
feat(ViewportActionBar and CinePlayer): Add new design for action bar and cine player (#3204)
* feat(ViewportActionBar): OHIF issue #3123 (#3186)

* feat(ViewportActionBar): OHIF issue #3123

- Renamed previous viewport action bar to be LegacyViewportActionBar
- Components LegacyViewportActionBar depends on also renamed: LegacyCinePlayer and LegacyPatientInfo
- New Viewport coded to specs in issue
- added React hook useResizeObserver
- added some tailwind classes

* Updated tailwind to 3.2.7.
Put external imports like React at the top of the import list.

* feat(CinePlayer and ViewportActionBar) (#3198)

* feat(CinePlayer and ViewportActionBar)
- OHIF issue 3123

- new look cine control implemented
- new custom blue color in tailwind config for various hover backgrounds in the cine control
- new icons added for cine

- Tooltip component now can be placed top (center) on hover
- Tooltip component border colour now consistent with specs

- fixed NPE in ViewportActionBar

- upgraded tailwind to 3.2.7 in platform/ui
- fixed issues in various button components brought by tailwind 3.2.7 where classes now need important flag

- fixed issue with InputRange component so that the tracked value property can change externally
- InputRange component can now optionally show its label

- added new measurement tracking state service to hydrate SR without prompting
- segmentation can also now be hydrated without prompting

* PR feedback:
- cine centralized to OHIFCornerstoneViewport
- introduced a type for the CinePlayer properties

* Addressed PR comments and concerns...

The DOM ref for the root component of the ViewportActionBar is now added to state
so that the various callbacks and ResizeObserver are updated with it.
The CinePlayer FPS slider tooltip was moved up so that its arrow does not
intersect the FPS text.
The hover area for the CinePlayer slider tooltip is now the FPS < > buttons and text.
The tracked measurements are now filtered to only include those of the active
viewport series when the tracked measurement navigation arrows are used.

* Addressed PR comments...

The update to tailwind 3.2.7 caused several look-and-feel, UI regressions,
so we are rolling back to 3.2.4.
2023-02-28 15:57:19 -05:00
Juan Esparza Torregrosa
c9125a0c0a
fix(translation): errors in StudyList and StudyBrowser for es (#3170)
* Fix translations

* Fix errors and es new translations

* Fix errors and es new translations

* Fix errors and es new translations
2023-02-24 13:07:16 -05:00
Pierre-Baptiste
34d5873bae
fix(init): servicesManager use before initialization (#3191)
Co-authored-by: Pierre-Baptiste Dupire <pierre-baptiste@omnidoc.fr>
2023-02-23 09:37:13 -05:00
Alireza
9b3f2e6638
chore: bump vtk version to fix rendering bug (#3192) 2023-02-22 21:51:33 -05:00
md-prog
b15988359f
feat(Calibration Tool): add a calibration tool that can manually recalibrate an image and measurements on it (#3136)
* minor bug fix - reading modalities

* react error log fix - button props

* react warn fix - Typography color prop

* calibration tool without persistence

* added toolbar button for calibration tool

* icon change for calibration tool

* important bug fix for calibration - length and calibration rate calculation

* fix weird autocorrection

* [fix] bugs after merging upstream

* [refactor] conform to the new service names
2023-02-22 21:01:36 -05:00
Alireza
7a36363735
docs: add percy acknowledgment (#3189)
* docs: add percy acknowledgment

* try to build
2023-02-22 12:15:30 -05:00
Bill Wallace
67fc3f733d
feat(SR): Measurement adapter mappings and save to same series (#3140)
* feat: Add adapter mappings for RectangleROI and Angle and save same

PR comments

* fix: Rehydrate check on non core measurement adapters
2023-02-17 16:44:21 -05:00
Alireza
926290f69e
feat: add more e2e tests for MPR and add test mode and extension (#3180)
* tests: add various e2e tests for MPR and measurements

wip

add cypress config

feat: add mode and extension for testing

add hp applied through search params

add MPR tests

apply review comments

add more e2e tests

update yarn lock

* fix unit tests failing
2023-02-17 15:04:07 -05:00
Joe Boccanfuso
ae4183852f
fix: Patient name handling as either Alphabetic object or simply string object
- formatPN should accept a string person name as well as an object with a Alphabetic field.
- For DICOM JSON data sources, spread in the patient data from the study object into the instance.
2023-02-16 13:50:59 -05:00
Joe Boccanfuso
b67c7b23e8
fix(authentication): mode/datasource routes must be marked private so they can be protected via authentication. (#3178) 2023-02-16 13:10:08 -05:00
Joe Boccanfuso
94bb4c7d42
feat(ImageSet): Avoid exposing the images field by adding a getNumImagesMethod (#3179) 2023-02-16 13:07:12 -05:00
Alireza
95bf3a105b
chore: update vtk js to 26.4.0 (#3174) 2023-02-14 14:17:13 -05:00
Joe Boccanfuso
f791a4cafb
fix(ViewportGrid) fill blank viewports with display sets not yet in grid. (#3154)
* fix(ViewportGrid): In ViewportGrid, fill blank viewports with display sets not yet in grid.
ViewportGridService now allows off-screen viewports to remain so that
so as to maintain continuity if they were filled by the UI/user.

* PR feedback: moved getNumViewportPanes into the ViewportGridService API.

* PR feedback:
- renamed some variables
- proper import/export of IDisplaySet
- added some comments for clarification
- fixed broken e2e tests

* Some missed rename of Services.
2023-02-14 10:01:39 -05:00
Edward Son
5e66faa45d
Remove unusued Types import (#3167)
Co-authored-by: edward65 <edward@afxmedical.com>
2023-02-13 09:14:48 -05:00
Bill Wallace
ecfdc9a687
fix(typescript): Missed renames UIModalService and UserAuthenticationService (#3171) 2023-02-13 08:55:55 -05:00
Bill Wallace
8af0362d12
fix(typescript): rename services to fix typescript (#3165)
* fix: Rename services to lower camel case, hp, measure

* fix: Rename DisplaySetService instances to displaySetService

* fix: Rename CornerstoneViewportService to lower camel case

* fix: Added lower case segmentationService rename

* rename other services (#3166)

* rename uiDialogService

* rename toolGroupService

* rename uiNotificationService

* rename viewportGridService

* rename syncGroupService

* rename CornerstoneCacheService

* Fix a syntax error in hotkeys

* Fix a couple of rename issues that were missed

---------

Co-authored-by: Alireza <ar.sedghi@gmail.com>
2023-02-10 16:46:09 -05:00
Bill Wallace
a97fb2fc9a
fix(hotkeys): fix the hotkey manager to not save the defaults (#3162) 2023-02-10 14:30:56 -05:00
Joe Boccanfuso
4558540357
fix(cypress test): remove the click at beginning of the window level test: (#3158)
'OHIF Cornerstone Toolbar'.'checks if Levels tool will change the window width and center of an image'.
2023-02-09 19:44:59 -05:00
wangxuan
390e439f38
feat: Fix the translation of the tab label on the right hand panel (#3153) 2023-02-08 11:54:34 -05:00
Bill Wallace
7f799b8e3d
fix: Create typed services and allow lower case access to agree with naming conventions (#3141)
* fix: Add typed services

* fix: Typed services - PR changes

* remaining of the cineService and toolbarService renaming

---------

Co-authored-by: Alireza <ar.sedghi@gmail.com>
2023-02-07 14:31:55 -05:00
Bill Wallace
0e1a58da79
fix: Use @cornerstonejs/adapters (#3116)
Also update the sort series to be consistent, using a single version of the series sort, and fix an issue with longitudinal mode export.
2023-02-06 17:05:13 -05:00
Leonardo Campos
8edd4ec054
fix(SR): fix Length and Bidirectional tools (#3143) 2023-02-05 21:03:19 -05:00
Bill Wallace
980b44f18c
fix(misc): Update the data source name, provide a /datasources example customization for debug (#3036)
* fix(misc):Update the data source name, provide  a /datasources

Update the imports for a few things to match, to avoid 2 versions

Fix the datasources name

pr:Make the data source selector configurable

* Updated data source selector page as requested

* PR fixes
2023-02-03 16:56:27 -05:00
wangxuan
7a3527dd4a
fix(typo): whiteLabelling to whiteLabeling (#3139)
* fix typo: whiteLabelling -> whiteLabeling

* fix resolvejsonmodule error
2023-02-03 10:28:05 -05:00
Alireza
123e3a569b
fix(Segmentation): bump packages to fix segmentation rendering (#3138)
* add test mode

* bump packages

* add reference lines

* update yarn lock

* fix netlify build

* fix num workers

* update year in doc
2023-02-03 09:33:28 -05:00
Ouwen Huang
a2bafaf100
feat(metadata): added voiLUTFunction to MetadataProvider (#2959) 2023-02-02 17:32:38 -05:00
ladeirarodolfo
b4881ab02e
fix(Panels): dicom seg panel sizing issue (#3125)
* Fix dicom seg panel sizing issue

* Set unecessary changes back

Co-authored-by: Rodolfo <rodolfo@radicalimaging.com>
2023-01-25 10:14:12 -05:00
Matthis Duclos
514ea3ccea
feat(HangingProtocol): add protocol generator back (#3128) 2023-01-25 10:11:08 -05:00
dxlin
f7c886878d
fix(Hotkeys): add firstImage and lastImage commands referenced by 'home' and 'end' hotkeys (#3127)
* -fix 'home' and 'end' hotkeys
  ->implement firstImage lastImage commands

* -extra comments

* -add check for compatible viewport in firstImage command
2023-01-24 15:43:27 -05:00
Joe Boccanfuso
b51c59016c
fix(MeasurementService): OHIF-433 Clicking on measurement should highlight the measuremen… (#3120)
Annotation selection update event originates from CS3D and as such should use the notUpdatedAtSource:false flag.
2023-01-16 20:38:37 -05:00
Joe Boccanfuso
58ae8690a7
fix: Clicking on measurement should highlight the measurement row in the measurement panel OHIF-433 (#3111)
* fix: OHIF-433 Clicking on measurement should highlight the measurement row in the measurement panel

Added selected flag to each OHIF measurement.
Listening to CS3D ANNOTATION_SELECTION_CHANGE to keep the selected flag in sync.

* fix: OHIF-433 Clicking on measurement should highlight the measurement row in the measurement panel

Fixed broken unit tests.

* PR feedback from Alireza:
- use MEASUREMENT_UPDATED event for selection changed
- added TODO to eventually have CS3D introduce the selected flag per annotation
- added MeasurementService._publishEvent

* PR feedback: now using _broadcastEvent
2023-01-13 13:57:18 -05:00
Joe Boccanfuso
a997198587
fix: app-config settings are ignored in OHIF v3 (#3114)
* fix: app-config settings are ignored in OHIF v3
github issue #3051

Remove default route from baked in routes if showStudyList is false.

* fix: app-config settings are ignored in OHIF v3
github issue #3051

PR feedback - simply remove default route from the baked in routes.

* fix: app-config settings are ignored in OHIF v3
github issue #3051

PR feedback - updated CS3D tools version
2023-01-12 16:38:12 -05:00
Gabriel Lebaudy
97dc2f9049
fix: Require all instances to have an ImagePositionPatient attribute (#3107)
This fixes cases when some instances don't have this attribute, which would break on platform/core/src/utils/sortInstancesByPosition.ts:52
2023-01-11 14:42:16 -05:00
Alireza
1d1b33224a
feat: use wadors instead of streaming wadors for volume loading (#3109) 2023-01-11 07:19:27 -05:00
Joe Boccanfuso
ac90df356e
fix: OHIF-386 Disable Export and Create Report buttons if there are no tracked measurements (#3102)
Use the disabled Button component variant when no tracked measurements are present.
Made the buttons look as per the spec.

Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2023-01-09 12:19:48 -05:00
Joe Boccanfuso
9b0d542526
fix: rework inconsistencies in split button implementation(#3086)
* feat: Combine the layout grid selector tool with the toggle MPR button into a split button.
The primary button will always be the layout grid selector and the MPR toggle is in the drop down menu.
This is the first step to later adding other (e.g. 3D) layout HPs to the menu.

Summary of changes/fixes:
- SplitButton now allows for its primary button to be any button component specified by a UI type.
- SplitButton passes a className to its primary button component to dictate how it should be rendered
based on its active/toggle status, hovering, menu visibility etc.
- The default menu item renderer for the SplitButton, renders acitve toggle items correctly.
- Items/buttons in the toolbar are now all the correct and same size.
- Added ToolbarService.getButtonComponentForUIType to fetch a button component for a given UI type.
- Spacing between toolbar items is now done at the Toolbar level to avoid double spacing and to ensure
uniform spacing.
- The drop down menu closes when clicking the primary button.
- Show a mouse down click effect when clicking the primary button.

Items to investigate still:
The following are all slightly contrary to the design specs of the UI:
- Is the click effect on the primary button satisfactory because with the hover border effect, the
button appears slightly smaller during the mouse down/up operation? (MEDIUM)
- On hover over the drop down button, the right-hand-side corners of the primary button appear
rounded and NOT square. Also the hover over the drop down button border effects make the primary
button appear smaller. (MEDIUM)
- Should there be hover effects when hovering over either tooltip of the SplitButton? (LOW)

* feat: Combine the layout grid selector tool with the toggle MPR button into a split button.

Fixed broken e2e tests.
data-cy and data-tool properties now passed down to primary button component.

* feat: Combine the layout grid selector tool with the toggle MPR button into a split button.

On drop down button hover, the primary button now stretches all the way right with no right border
and with square corners in the top and bottom right as per the toolbar spec.

The mouse down effect gives a full button look (i.e. no borders) with rounded corners all around and black text icon.

* feat: Combine the layout grid selector tool with the toggle MPR button into a split button.

Documented that the primary button of a split button can specify a UI type.

* feat: Combine the layout grid selector tool with the toggle MPR button into a split button.

Feedback from PR review to fix prettier formatting issue.

* feat: Combine the layout grid selector tool with the toggle MPR button into a split button.

Added TODOs as per Bill's request in the PR.

* feat: Combine the layout grid selector tool with the toggle MPR button into a split button.

Feedback from Alireza: reverted the layout selector and MPR tools to be separate toolbar items.

Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2023-01-06 15:00:23 -05:00
Bill Wallace
fb2a60ae19
feat: Allow multiframe volumes (#3089)
* Allow multiframe volumes

* feat:Allow display of multiframe volume
2023-01-05 20:26:26 -05:00
Bill Wallace
00e797801d
feat(imageLoader):Add an nth image loader strategy (#10) (#3044)
* feat(imageLoader):Add an nth image loader strategy (#10)

* Updates for PR for nth menu

* performance:Prior implementation was O(n^2), taking about 50 ms

* feat:Nth image loader, added docs as requested
2022-12-29 11:00:13 -05:00
Bill Wallace
9a03bde0ae
Fix/sr hydration non tracking (#3080)
* fix:DICOM SR hydration - remove redundancies

feat:Allow save and restore on non-tracking view

* PR comments
2022-12-29 10:13:06 -05:00
Salim Kanoun
799d648a90
Merge pull request #2 from OHIF/v3-stable
V3 stable
2022-12-28 21:25:05 +01:00
jbocce
ec7cdba901
fix: Docker build and run were not working (#3081)
* fix: Use single quotes instead of backticks when specifying the environment variable that should be substituted for the envsubst command.
GitHub issue: #3079
Removed duplicate calls to envsubst.
Default nginx listen port is now 80.
Adde markdown documentation.

* fix: Fixed some typos and wording in markdown documentation.
GitHub issue: #3079

Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
2022-12-15 16:10:30 -05:00
Bill Wallace
beb4517450
fix(grid):Grid service wasn't being reset (#3068)
* fix(grid):Grid service wasn't being reset

* fix(service):Fix the initial service state

Services with mode specific state differed in internal state between
initial and subsequent load.  This fix address that structurally by
allows the mode to store/manage service state, but makes the
responsibility of service state central to the service.
2022-12-09 10:58:01 -05:00
Alireza
42dca11ae3
fix: various bugs with v33 re cine and colors (#3052)
* fix various bugs

* feat: initial work for debug page

* change throw to console error for color lookup table

* update packages

* apply review

* apply review comments
2022-12-05 09:53:59 -05:00
Tim
4c5d14c624
fix: Add support for showStudyList configuration setting (#3009)
I followed suit with how it was implemented in the v2 branch, on the 404
page I just hit the link back to the study list if we're not configured
to display it. See PR #2131
2022-12-02 09:23:44 -05:00
Michael Andersen
2a9e1e65a2
fix: dicomTagBrowser re-render when series changes (#3054)
Co-authored-by: Michael Andersen <Michael.Andersen@rmp.uhn.ca>
2022-12-01 14:17:37 -05:00
Gabriel Lebaudy
71d736067d
fix: handle undefined instance object (#3042)
Some DisplaySets don't have a `instance` property, thus throwing an error at this location. 

This change fixes this issue.
2022-11-30 11:35:27 -05:00
Alireza
bbd962f0b4
fix: remove lottie dependencies since it is not being used (#3040)
* remove lottie as it is not used

* update yarn lock
2022-11-24 17:32:08 -05:00
Bill Wallace
daa56a8449
feat(CustomizationService):Add a customization service (#2984)
* feat(customization):Add a customization service

Update UICustomizationService to v3-stable.

Also, adds an example customization for tab colors

* moved the customization service to ui category
2022-11-24 16:28:10 -05:00
Salim Kanoun
d5c347cecd
Merge pull request #1 from OHIF/v3-stable
V3 stable
2022-11-24 17:01:48 +01:00
Alireza
32bb7e4c1e
fix: sr module and add URL docs (#3034)
* fix sr module and add docs

* bump version
2022-11-23 11:43:46 -05:00
Bill Wallace
024aeae240
fix: button text colour to be more readable (#3031)
* Fix the button text colour to be more readable

* fix(button):Add the ability to set text to black to fix visibility
2022-11-22 09:11:03 -05:00
Bill Wallace
abd75b0ba1
feat(datasourcename):Allow specifying the datasourcename as a parameter (#3029) 2022-11-22 09:09:24 -05:00
Alireza
bbfdda7fe7
feat: enhanced notifications and toolbar hover states (#3032)
* fix: button hover state and overlay colors in tmtv

* fix: styles for notificaionts
2022-11-21 22:35:25 -05:00
HarmvZ
be6b8629be
fix: Correctly ignore directories in webpack config (#3025) 2022-11-21 17:46:55 -05:00
md-prog
558ba634fa
fix: Elliptical ROIs not being added when created outside image (#3019) 2022-11-21 16:42:23 -05:00
Zaid Safadi
d5e00817d7
fix: update DicomJSONDataSource to support directURL method (#3018) 2022-11-21 16:40:52 -05:00
Alireza
87eab39768
fix: remaining bugs for MPR and toolbar icon colors (#3026)
* feat: warn for overlapping segments

* fix: typo

* refactor mpr toggle and stack sync

* fix: wip for more general mpr

* fix: tool groups for mpr

* fix: changing of viewport id

* fix: viewport Id for the seg viewports

* fix

* update cornerstone version
2022-11-21 10:44:19 -05:00
Alireza
6db4d7a917
fix: ui for dicom tag browswer (#3022)
* fix: ui for dicom tag browswer

* fix build
2022-11-16 22:35:23 -05:00
Michael Andersen
ccf010c0fe
feat: DicomTagBrowser tool (#2975)
* init bring v2 tag browser to v3, some small bug fixes

* moved tag browser to default extension, altered style to be more OHIF-v3-like

Co-authored-by: Michael Andersen <Michael.Andersen@rmp.uhn.ca>
2022-11-16 22:16:12 -05:00
Alireza
eddd510a35
feat: enhanced error handling ui (#3021)
* feat: better error handling

* better error handling

* try to fix netlify build

* remove new line
2022-11-16 20:27:24 -05:00
Alireza
83ea228d86
feat: Add DICOM SEG support and MPR, referenceLines and StackSync and more (#3015)
* feat: add initial sop class handler for SEG

* feat: move segmentation service

* update segmentation service methods

* fix: viewport data structure

* feat: Add initial render for the DICOM SEG for each displaySet

* fix: various wrong architectural dependencies between services

* feat: initial separate SEG display in each viewport

* feat: refactore viewport action bar

* initial work for SEG hydration

* fix: various bugs regarding drag and dropping different viewports

* fix: rendering issues for multiple seg displaysets

* fix: bugs for thumbnail and hydration

* feat: fix the initial segment color

* update after rebase

* feat: initial design for the segmentation group table

* feat: initial new design for the segmentation panel

* feat: segmentation panel

* feat: make segmentation appear on all related viewports

* fix: segmentation load bug based on functional groups

* initial work for segmentation crosshairs

* fix: various stylings and functionality

* fix: various stylings for the seg panel

* fix: overflow styles

* feat: add more ui components

* feat: added segmentation config

* feat: add jump to segment

* feat: add jump to segment for DICOM SEG viewport

* fix: bugs after rebase

* feat: jump in segmentation viewport

* fix: mpr support for seg

* feat: add more icons

* feat: new icons

* feat: add new side panel

* feat: add segmentation config

* feat: add loading indicator to ohif

* feat: make hanging protocols follow matching rules for viewports

* feat: enhance drag and drop to be hanging protocol aware

* fix: mpr restore previous layout

* fix: crosshairs toggle

* fix: add auth headers to the dicom loader via dicomwebclient

* fix: bug for crosshairs toggle in mpr

* fix: seg viewport reusing old toolGroup

* feat: add loading animation with lottie

* fix: various bugs for Segmentation hydration in mpr

* feat: change outline alpha to outline opacity

* feat: loading indicator for seg viewport

* fix: various segmentation group styles

* fix: local mode for seg

* feat: add animation for the highlight

* fix: loading indicatro to show segment indices

* feat: enhance modality drop down ui

* fix: panels

* fix: download form

* fix: layout shift in loading indicator

* fix: loading indicator to have correct values

* fix: update software number

* fix: image jump between MPR and default

* fix: segmentation cleanup and cine service cleanup

* fix: segmentation toolgroup clena up

* fix: highlight interval should not trigger again

* fix: issue with multiframe sorting

* rename: change onSeriesChange to onArrowsClick

* fix: buttons for tmtv and layout shift

* fix: various bugs wrt crosshairs

* fix: crosshairs re init on reset camera

* fix: middle slice calculation different from cs middle reset camera

* fix: reset camera should reset viewport camera

* fix: loading segments in MPR mode

* fix: tmtv hp back to before

* fix: layout shift

* feat: orientation markers for volume viewport

* fix: capture for volume viewports

* fix: memory leak for back to worklist

* fix: loading bar bg color

* fix: side panel for only one panel

* fix: react select style in production

* fix: various styling for segmentation groups

* fix: various ui styles

* feat: add new segmentation config styles

* fix: hover state for segmentation item

* fix: side panel layout shift

* temp add panels

* try to fix scrollbar for thimbnail

* fix: scroll not appearing for side panels

* feat: changed styles for scrollbar

* feat: add cpu fallback warning

* fix: webworker destroy

* fix: select styles

* fix: orientation marker color and position

* fix: capture screenshot for volume viewports

* fix: hide segment visibility on mpr

* fix: reloading an already loaded seg displayset

* feat: add is equal

* fix: mpr jump to measurements

* apply review comments

* fix: optimization for the segmentation load

* fix: remove unnecessary context menu and hp service reset

* fix: segmentation service wrt brush settings

* feat: initial work for the stack synchronization

* fix: add validateDisplaySetSelectorsForNewDisplaySets to make sure drag and drop can follow requirements

* fix: various react proptypes

* fix: thumbnails for the tmtv and change default props to default params

* feat: make showing loading indicator configurable and add docs

* bump versions and add more docs

* fix demo

* update cornerstone versions

* apply review comments

* feat: add reference lines

* fix build

* fix unit tests

* add reference lines icon

* fix: e2e tests

* fix static wado config

* docs: add segmentation service docs

* fix: docker build

* fix: keep camera and bump versions

* Try re-enabling minification to fix deploy previews

Co-authored-by: Erik Ziegler <erik.sweed@gmail.com>
2022-11-16 14:19:52 -05:00
wangxuan
08c58b0634
fix: deprecated syntax of lower substr (#3013)
* fixed import error syntax

* replace lower.substr with lower.substring

* remove redundant parameter

* fixed import syntax error

* fixed import syntax error
2022-11-10 13:29:55 -05:00
wangxuan
173b6568fd
fix: import error syntax (#3002) 2022-11-08 23:15:47 -05:00
Ouwen Huang
eb7874bd0b
feat: added useCursors, useCPURendering, and maxCacheSize config params (#2988) 2022-11-07 10:05:56 -05:00
Alireza
3d0d09e1bc
fix: add the quotation exclusion for accept header for our configs (#3006)
* fix: revert the quotation inclusion for accept header to be off by default

* changed all configs
2022-11-04 09:01:34 -04:00
Bill Wallace
7dc9b3549f
fix(viewer): View two or more specified studies (#2815) 2022-11-03 16:57:32 -04:00
Zaid Safadi
6b1f9f35a8
fix: wado-rs retrieve metadata doesn't work with .NET servers #2969 (#2970)
* fix: wado-rs retrieve metadata doesn't work with .NET servers (issue #2969)

* add configuration to ommit the quots from multipart request
2022-11-03 11:19:35 -04:00
TFRadicalImaging
6698300ace
fix: Display series specified by URL query parameters in viewer (#3000)
* Changed the static wado filter to allow filtering for series before start make requests of the entire metadata

* fixed first filter to use studyFilterKeys

Co-authored-by: Thomas Forster <thomasforster@ip-192-168-68-104.eu-west-2.compute.internal>
2022-11-01 18:25:49 -04:00
Bill Wallace
2507a4b546
feat: Display series specified by URL parameters in viewer (#2979)
* WIP

* WIP

* WIP

* fixed Bill comments on PR - https://github.com/OHIF/Viewers/pull/2979

* added series number to series filter and removed extra console.log

* changed the filter of seriesFilterKeys to studyFilterKeys

* changed the seriesInstaceUID to SeriesInstanceUID to make coerence with StudyInstanceUID

* reverted change on extension retrieveMetadataLoaderAsync and make the right change on Mode.tsx

* fixed PR comments and add small information about the filters

Co-authored-by: Thomas Forster <thomasforster@MacBookPro-Thomas.local>
2022-10-25 10:20:32 -04:00
Ouwen Huang
5482de08bc
cli: pass npm_token for private repos (#2987) 2022-10-18 22:01:35 -04:00
Tim
26cc87a2ac
docs: fix spelling of continuous (#2983)
I've left the file name as it as to not break and existing URL's
2022-10-18 22:00:33 -04:00
md-prog
17257ff0df
upgrade @cornerstonjs/core to 0.16.8 (#2980) 2022-10-14 16:17:09 -04:00
md-prog
dcf3fdbed3
dcmjs package reference upgraded to 0.28.3 (#2978)
Just a package version upgrade.
2022-10-14 14:48:14 -04:00
md-prog
b93067b6a2
feat: Annotation and Measurements support on multi-frame DICOM (#2973)
* added utilities to get frameNumber from imageId and add frameNumber to per-frame instance copy

* Fix measurements' display texts on the Measurements Panel to have the correct instance number and frame number

* fixed minor React bugs (errors on console)

* fixed React's console bugs that are logged for some series that doesn't have "description"

* bug fix - multi-frame files was not loading frames correctly. It was loading Frame 1 twice, and not loading the last frame. Due to wrong frame number indexing (frame number begins with 1, not 0)

* metadata parser fix - providing default values of imagePlaneModule

* measurement SR support on multi-frame DICOM

* bug fix - jumping to the selected measurment on multi-frame DICOM

* upgrade dcmjs dependency to 2.8.1

* StudySummary component - allow "description" to be null

* make getUIDsFromImageID() method public from MetadataProvider

* imageId usage fixes to be more stable

* change the variable name to be more meaningful

* fix metaProvider importing

* for(...of) instead of for(i=0;i<length;..)
as that doesn't assume anything about the layout/design and just gets next until done.

* use Array.findIndex instead of plain for loop

* use ReferencedSOPSequence[0] - because the ReferencedSOPSequence is an array that happens to have attributes of child zero when of length 1, but you shouldn't count on that.

* DisplaySetService.getDisplaySetForSOPInstanceUID() - added optional frameNumber parameter for future usage : now they are just ignored as we are not supporting multiframe splits

* simple code refactoring

* refactoring for checking undefined values - mappedAnnotations

* remove unreachable code

* code refactoring  - prefer conditional chaining

* fix how we access imageIds of viewport (StackViewport)
2022-10-13 11:07:56 -04:00
Sean Doyle
af09578544
feat: Added support for TID 1410 relationship types (#2942)
* Added support for TID 1410 relationship types

* Added POLYLINE rendering from ladeirarodolfo to PR

* Rolled Dockerfile back to master to make merge easier

* Minor cleanup
2022-10-10 23:09:38 -04:00
Alireza
7f770e4fb6
fix: cine scrolling was broken when navigating back to studylist (#2974)
* fix: cine clean up when exited

* fix: make cine work while dragging and dropping another displayset
2022-10-07 00:32:28 -04:00
Michael Andersen
1d47f31738
feat: Add logout for oidc (#2840)
* add oidc logout route, button in menu

* removed old comments

* use local storage to trigger signout in other tabs

* refactored to make use useEffect

* cleaned up comments

* fix remove event listener

* moved remove leftover storage variable to beginning of usemount

Co-authored-by: Michael Andersen <Michael.Andersen@rmp.uhn.ca>
2022-10-06 22:40:16 -04:00
Bill Wallace
e401358887
fix(hp): Make the updated hanging protocol compatible with modes (#2971)
There had been a change made to make the hanging protocols
auto initialize, but that caused problems on mode init
because the couldn't specify the hanging protocols any longer.
THis change restores that, and also improves the API a little
bit by allowing the display set selectors to be specified by id
instead of positionally.

fix(hp):PR Review Comments

fix(hp):Unit test and docs
2022-10-05 08:32:54 -04:00
Ouwen Huang
1bcc9ccd89
feat: added default close option to viewer layout for sidebar ui (#2961) 2022-09-28 15:46:58 -04:00
Bill Wallace
06feca1f4a
fix(cornerstoneCache):Race condition on cache notification (#2900) 2022-09-23 16:24:18 -04:00
Alireza
9df557831b
fix: mpr button is not ready to be displayed yet (#2951) 2022-09-22 11:55:51 -04:00
Ouwen Huang
c9818d9fc5
fix: sop class handler isSingleImageModality always undefined (#2948) 2022-09-21 09:54:29 -04:00
Alireza
939ba958a1
fix: dockerfile adds typo during merge 2022-09-21 09:53:33 -04:00
Alireza
adbb236ab4
fix: dockerfile typo (#2949) 2022-09-21 09:52:33 -04:00
Alireza
0d7f29606f
fix: dockerfile to include preinstall (#2943) 2022-09-20 23:49:22 -04:00
Alireza
5f480ff746
feat: explicit layout apply via HangingProtocolService (#2936)
* feat: add more types to HP service

* change hp to have apply protocol

* feat: mpr initial work

* apply protocol by id

* feat: mode should be able to apply protocol directly

* fix: wrong inheritance for viewports drag and drop

* apply review comments
2022-09-20 23:40:26 -04:00
Ouwen Huang
fb9744a817
feat: added rows column props to LayoutSelector (#2945) 2022-09-20 17:43:23 -04:00
Bill Wallace
ff24b57a4b
feat: Multiframe metadata provider (#2938)
* fix(volume):Support volume viewing

* fix(multiframe):Display multiframe US, and multiframe PR fixes

* fix(metadataProvider):Don't call combine if frame not defined
2022-09-20 14:47:18 -04:00
Bill Wallace
3900e62641
fix(datasource): configurability of additional data source extensions (#2931)
* feat(dataSource):Support more than one data source type.

* Add consumer type
2022-09-20 11:05:26 -04:00
Alireza
55a1704e4a
feat: upgrade tailwind to version 3 (#2933)
* initial upgrade commit for tailwind

* fix: inconsistensies in button

* fix: various places with conflicts

* final fixes

* fix: dialog header color

* apply review
2022-09-19 20:02:53 -04:00
Bill Wallace
dc04296cfd
feat(synchronizers): Add registration for synchronizers (#2861)
doc(hp):Update the sync group/hanging protocol documentation
2022-09-15 23:23:17 -04:00
Alireza
f9449e97df
fix: storybook with typescript (#2926)
* fix storybook for typescript

* fix babel
2022-09-13 08:57:22 -04:00
Bill Wallace
1b30ff83a5
fix: ohif cli bug for linking (#2892)
* fix(cli):Make the linkage in the root node modules

* fix(cli):Fix the index.tsx referencce
2022-09-08 22:22:51 -04:00
Ouwen Huang
6e3dc1e9d9
fix: enabled multiple studies in local mode (#2889) 2022-09-08 22:18:17 -04:00
Bill Wallace
0090605cf7
fix: various type issues and error handlings (#2831)
* fix(error):Fix a few error conditions, mostly around seriesNumber

* apply few fixes
2022-09-08 22:09:28 -04:00
Alireza
71f5fa8e2f
fix: left right hotkeys and remove non working ones (#2922)
* fix: constant should be enums in cs3d

* remove non working hotkeys for now
2022-09-08 22:02:20 -04:00
Alireza
aec48b065c
fix: total dose unit (#2921) 2022-09-08 14:42:37 -04:00
Alireza
83264bb5a5
fix: imagScrollbar should not stop cine if not playing (#2920) 2022-09-08 14:42:25 -04:00
Alireza
a16d7e1402
fix: bump packages for crosshairs to get fixed (#2917) 2022-09-08 09:03:37 -04:00
Bill Wallace
e1d366e1e1
feat: make hanging protocol work on displaySets instead of series (#2837)
* feat(HP): Apply HP to display sets, fix race condition

* fix: displaySetService no event not needed (#2912)

* fix various styles and renamings

* feat: refactored hp service

* fix: use HP service event for viewport grid

* remove unnecessary doc

* fix test

* apply review comment

* fix: segmentation creation

Co-authored-by: Alireza <ar.sedghi@gmail.com>
2022-09-07 11:59:11 -04:00
Eric Taix
7c0756824e
fix: modules name to reflect typescript usage (#2909)
* Prevent IntelliJ config file from being pushed to the repository

* Rename module's name to reflect the created file for a new mode

* Rename the module's name to reflect the filed created for a new extension which uses now typescript
2022-09-05 10:32:03 -04:00
Alireza
2639d90e5e
fix: hanging protocol for the tmtv (#2882) 2022-08-19 19:35:29 -04:00
Salim Kanoun
df6ddf1572
fix: bone and brain preset in tmtv (#2877) 2022-08-19 18:43:04 -04:00
Nigel
96986f992a
bump: cornerstrone tools and core version to fix terser bug (#2881) 2022-08-19 18:42:20 -04:00
Alireza
0510b21634
fix: product versoin for v32 (#2876) 2022-08-18 19:23:45 -04:00
Alireza
10b4ed5f8c
feat: new Total Metabolic Tumor Volume tmtv (#2866)
* fix: ptDisplaySet metadata problem

* fix: typo in xhrHeader field

* fix: temporary fix for crosshairs on reload data

* fix hotkey bug for input fields

* upgrade docusarusu to stable release

* circle ci node upgrade

* cypress node upgrade

* bump node in netlify

* bump node version

* remove versioned docs

* update resources

* fix: webpack injection of plugins

* fix meaningful label for panels

* add reviews and fix cli for creation

* copy over chunks if exists in the build

* edit templates

* edit templates

* fix yarn lock

* fix(plugin):Deploy on windows is broken

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2022-08-17 15:13:59 -04:00
Alireza
ae897c47e0
fix: typo in accept headers (#2858) 2022-08-02 15:23:35 -04:00
Arun Poudel
f05c12dc0c
docs: update HangingProtocolService (#2857)
Removed duplicate paragraph for custom attribute
2022-08-02 09:51:38 -04:00
Alireza
6c632ea084
fix: package version number (#2853) 2022-07-29 07:34:39 -04:00
Erik Ziegler
bd1c38c00c
feat: cornerstone3D stack and volume viewports (#2787)
* feat: cs3d working stack viewport and tools (#19)

* Squashed everything

* fix weird react issue

* fix eslint / prettier stuff

* thumbnails work now with cpu rendering

* feat: use new loadImageToCanvas in cs3d

* make jump to measurement work

* fix active thumbnail

* fix measurement delete

* fix window level presets

* remove segmentation and sync groups for now

* fix the dicom pdf and dicom video

* fix cornerstone window assignment for cypress

* apply review comments

Co-authored-by: Erik <erik.sweed@gmail.com>

* feat: cs3d tools and toolGroups (#20)

* add more tools to work with cs3d mode

* fix hotkeys

* add stack manager usage for stach viewports

* add image scrollbar

* wip viewport overlay

* fix toAnnotation schema for tools

* fix the unnecessary size change that triggered resize

* hanging protocol improvement to allow unmatched errors

* study description matching for hanging protocol

* fix the displaysetOptions to work

* fix handle the active tool when a new viewport is added

* fix separate toolGroups for mode

* apply review comments

* apply review comments

* yarn lock

* feat: overlay component (#21)

* fix default displayset options

* add viewport overlay

* apply review comments

* feat: loading and orientation indicators (#22)

* add loading indicator

* add orientation marker initial work

* apply review comments

* fix: orientation markers (#23)

* finished the orientation markers

* fix various broken cypress tests

* apply review comments

* update yarn lock

* feat: re-working measurement tracking mode with cornerstone3d (#2805)

* feat: cs3d working stack viewport and tools (#19)

* Squashed everything

* fix weird react issue

* fix eslint / prettier stuff

* thumbnails work now with cpu rendering

* feat: use new loadImageToCanvas in cs3d

* make jump to measurement work

* fix active thumbnail

* fix measurement delete

* fix window level presets

* remove segmentation and sync groups for now

* fix the dicom pdf and dicom video

* fix cornerstone window assignment for cypress

* apply review comments

Co-authored-by: Erik <erik.sweed@gmail.com>

* feat: Add Measurement tracking mode with cs3D (#2789)

* feat: first render for cornerstone3d tracked viewport

* make tool active work

* wip for SR extension

* renamed dicom sr to cornerstone dicom sr

* remove cornerstone from dicom pdf and video

* move dicom sr logic to sr extension

* feat: Add hydration for the length tool

* fix SR display tool for length using cs3d

* fix default config

* fix: various bugs with sr viewport and tracking

* fix promptying to continue tracking for when SR is created

* feat: add keep trackign of unique identifiers

* fix hydration for same imageIds

* feat: Add SR toolGroup creation on modeEnter

* feat: remove the need for separate mapper for SR hydration

* add SR display for ellipse

* handle hydration of elliptical ROI tool

* remove cornerstone extension

* add arrow mapping

* feat: Add ArrowAnnotate SR display and hydration

* apply review comments

* apply review comments

* move viewport labels to the viewportData

* apply review comments

* fix: integration cypress tests with cornerstone3D and add CINE tool (#2795)

* fix: integration cypress tests with cornerstone3D

* revert to addOrUpdate as it makes more sense

* fix local drag and drop

* fix tests

* move dicomLoaderService to cornerstone extension

* fix various import bugs

* fix bug for local PT series

* fix various unit tests

* bump cs3d versions

* add angle and magnify tool

* bump dependencies to avoid broken peerDeps

* feat: add initial work for capture using cs3d

* feat: show annotations on the image capture

* feat: add svg layer export

* feat: Add CINE Tool

* feat: remove unnecessary viewport rendering for cine state changes

Co-authored-by: Erik Ziegler <erik.sweed@gmail.com>

* docs: modify and improve documentation (#2800)

* cleanup docs versionings

* feat: Add all version explanations

* version docs for 3.0

* wip for changing docs

* wip for updated docs

* add utility module documentation

* fix demo with nohoisting of history

* add slides and video to resources

* apply review comments

* fix: drag and drop SR into SR viewport (#2803)

* update yarn lock

Co-authored-by: Erik <erik.sweed@gmail.com>

* update pathnames to match v3-stable

* update the e2e pathname

* fix: various bugs with regard to tracking workflow (#2811)

* fix: various issues with measurement panel

* fix: update default tool style for annotations

* fix: annotatoin label getting removed

* feat: Add backward compatibility for SR hydration with legacy cornerstone

* fix: cursors and ellipse ROI max style

* fix: ArrowAnnotate SRDisplay

* apply review comments

* bump package versions

* fix: bugin rehydration of SR

* fix: e2e tests

* fix active viewport thickness and arrowTool ui

* add readme for measurement tracking

* use uploaded image for readme

* add back images

* try to fix e2e test

* fix: window level presets hotkeys

* Update README.md

* update yarn lock

* feat: volume api and TMTV mode (#2817)

* feat: volumeAPI and TMTV mode

* feat: use cs3d cache service to obtain viewportData

* wip for volume api

* wip: fusion viewport

* feat: add blend mode option

* wip for image scrollbar

* fix drag and drop thumbnail

* wip for image scrollbar for voluems

* fix: element mismatch bug for scroll

* feat: Add image scrollbar to volumes

* feat: add syncGroups to volume api

* feat: add tmtv mode initial setup

* feat: add initial image options for the stack viewports

* feat: Add custom load strategy for volume viewports via HP

* apply review comments

fix: Jump presets cs3d (#2812)

* feat: Add JumpPreset to OHIF for Cornerstone3D

* fix: accessing viewport service from servicesManager

feat: volume API and TMTV mode (#2814)

* fix: do not display overlays on mip viewports

* feat: add optional disableCommands for toggle buttons

* fix: toggleCrossharis

* feat: config the crosshairs

* feat: add PetSUV Panel for changing metadata

* feat: initial work for the rectangleROIThreshold panel

* wip: measurement service

* roi threshold working

* feat: Add displayText to segmentations

* feat: add remove segmentation

* feat: add csv export

* feat: add RT export for annotations in tmtv mode

* fix: fusion to use pt in tmtv mode and measuremet mappings

* fix: various bugs

* apply review comments

* apply review comments

* feat: add fusion color maps

* add readme to tmtv mode

* Update README.md

* fix: try to fix build

* fix unit tests

* Update README.md

* feat: add about to the panel

* fix: changing strategy in roi panel

* apply review comments

* update package versions

* wip for stackPrefetch

* fix: cornerstone3d hydration and renaming (#2818)

* update readme

* renamed cornerstone extension

* wip for renaming cornerstone3D variables

* wip for renaming cornerstone3D variables

* wip for fixing bugs for SR viewport

* fix: jumpToMeasurement and initial label after hydration

* fix: fileName capitalization

* feat: use the new prefetch stack in the cs3d (#2820)

* feat: use the new prefetch stack in the cs3d

* use viewport scroll api for stack viewport

* fix cine stop when scrollbar changes

* feat: use new prefetch events

* fix loading state to not show repeatedly

* fix: various bugs for tmtv mode thresholding and new icons (#2823)

* feat: make tmtv mode available in worklist

* feat: add new icons for tmtv mode

* feat: add fusion color icon

* fix: parallel scale calculation

* fix: bump Cornerstone to get large image support working

* fix: Fix issues with CPU viewport flipping, including config files

* fix: bump cornerstone to fix magnify tool

* fix: Bump Cornerstone version to fix resetCamera issue in StackViewport

* ci: Add _headers file to enable CORS headers for Netlify Drag/Drop deploys

* fix: WADO-URI was not working. PET Metadata was coming from the wrong place. Fixed some minor React errors

* feat(OHIF):Allow modes and extensions to be added after commpile time. (#2838)

Also works with the compile time add that the existing cli uses, so that both build types work.
Eric and I agreed this doesn't change existing functionality, but is almost entirely build issues/fixes.

* bump: dependency versions to fix hydration bugs (#2848)

* bump: dcmjs version to fix hydration bugs

* try to fix tests

* bump dependency versions

Co-authored-by: Alireza <ar.sedghi@gmail.com>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2022-07-27 12:39:04 -04:00
ladeirarodolfo
86dcaf6293
fix: ohif-cli cosmetic changes for help description (#2776)
* fix ohif-cli cosmetic changes for help description

* refact code review fix main command name

* fix extension template fix extension-default package version
2022-07-21 18:42:43 -04:00
Celian-abd
cfcf5e48e7
fix: window level presets (#2808) 2022-07-21 18:23:07 -04:00
Pierre
2d8ae893e4
fix: Pass basename to BrowserRouter - Fixes #2769 (#2778)
Fix build when PUBLIC_URL is defined

Co-authored-by: Pierre Duquesne <pierre@omnidoc.fr>
2022-05-06 10:11:02 +02:00
Alireza
7f0ad6f84d
feat(cli): Ohif cli for modes and extensions modification (#2696)
* feat: Add initial cli tool structure

* feat: add copying template files

* feat: Add mode template and command

* feat: Add readme template generation

* feat: Add documentation to extension template

* feat: Enhance documentation of the template mode

* fix: cli module type

* feat: Add config-based mode and extension registration (#2660)

* feat: Add ohif cli add/remove extension/mode (#2661)

* Basic working CLI for add-extension and remove-extension

* Basic cli for add/remove extension/mode, lots more to do.

* Cleanup and harden]

* feat: Add list of tasks to add-mode

Co-authored-by: Alireza <ar.sedghi@gmail.com>

* feat: Add git initialization for the mode or extension template (#2662)

* fix: package json file to include templates

* feat: Add git initialization for the mode or extension template

* feat: Add more checks of git and target dir

* feat: refactore library utilities

* feat: Add the list command to print extensions and modes (#2664)

* feat: Add the list command to print extensions and modes

* Add todo

* Feat/ohif cli validation + auto install (#2671)

* WIP

* Working mode keyword verification

* Validation

* auto install extensions based on modes

* WIP remove unused extensions on removeMove

* Working add-mode, remove-mode automatic extension management.

* If extension is in used by a mode, don't allow the CLI to uninstall it

* Cleanup addExtension

* cleanup removeExtension and addMode

* Cleanup removeMode

* Update existing extensions with the needed keywords/peer deps

* Fix broken config

* Feat/cli search (#2677)

* feat: refactor pretty print for console

* feat: add search for modes and extensions

* fix: ugly colors

* Feat/ohif cli error handling publishing (#2679)

* WIP

* fix: webpack imports

* wip

* fix: react router dom private routes

* from last commit

* wip

* fix: webpack prod builds

* WIP

* Working regsitration with new IDs

* Stable

Co-authored-by: Alireza <ar.sedghi@gmail.com>

* verify extensions when constructing modes. (#2681)

* verify extensions when constructing modes.

* Add version to unit tests so it conforms to schema

* Update ohif utils exposed via @ohif/core

* Fix import

* fix tests

* feat: ohif-cli link local modes/extensions for development (#2682)

* feat: enable cli to work with project root

* feat: add initial link package

* feat: add link and unlink extension

* feat: add link and unlink mode

* erro handling for link-package

* feat: add comment on ohif-cli linking for development (#2686)

* Docs/ohif cli (#2687)

* feat: Add documentation for templates

* feat: Add more documentation

* Fix/core publish (#2685)

* versions

* wip

* remove webpack clean output

* fix publish

* use next as dist tag for v3 for now

* fix webpack pro recipe for output

* fix: lerna publish next

* fix(cli): fix issues when trying to link an extension or a mode (#2725)

The generated package.json doesn't contain keywords property which is
required by the linkPackage function. The module apth wasn't correclty
handled too, and when there is no pluginOptions, it fails while reading
the file or while generating a default configuration.

* make dicom pdf and video work after cli merge

* add axios dependency

* comment out the chdir for now

* create id and version based on user inputs

* customizable path for extension and modes

* fix template to make the template mode load

* fix the questions to loop if path is not desirable

* fix templates

* correct package json order

* unify the package creation for extension and mode

* bump versions for each package

* bump extension versions to 3.0

* add gitignore to templates

* fix version requirements when ^

* update docs

* update docs and fix tests

* try to fix the tests

* bump node version

* remove the version from extensions

* remove the version from modes

* remove version from extensionManager

* fix eslint

* revert husky version

* fix eslint

* fix node version for new eslint

* fix documentatoin removing version

* fix cicle ci image version

* fix circle ci node image

* fix circle ci node image

* add back the video and pdf

Co-authored-by: Matthis Duclos <matthis.duclos@gmail.com>
Co-authored-by: James A. Petts <jamesapetts@gmail.com>
2022-04-06 13:28:42 -04:00
Bill Wallace
82df3eac03
feat(PDF):Add PDF viewer (#2730)
Display DICOM encapsulated PDF documents in a PDF viewer.
Addressed the remaining PR comments, and am merging this.
2022-04-04 09:48:14 -04:00
Bill Wallace
f3822f98a3
Fix palette colour display in OHIF v3 (#2731)
* fix(OHIFv3):Fix palette colour data display

* PR comments - added params description
2022-03-11 11:18:56 -05:00
Bill Wallace
3184e5572f Updating testdata, no functional change 2022-03-04 14:25:27 -05:00
Lumenol
fe9e7123d7
fix: fixing errors in documentation (#2728)
Co-authored-by: Louis-Maxime Crédeville <louis-maxime.credeville@gleamer.ai>
2022-03-03 11:28:07 -05:00
Matthis Duclos
6c9b5ca10c
fix(dicom-json): Series metadata retrieve (#2726)
There was a typo in DicomJSON datasource to retrieve metadata. This was
causing an error in Mode.jsx (line 52)
2022-03-01 08:51:34 -05:00
Pierre-Baptiste Dupire
80a4040feb Remove validNumber for photometricInterpretation key 2022-02-25 14:16:55 +01:00
Bill Wallace
ca9ed62a5f
feat(OHIF):Add DICOM Video Display
* feat(OHIFv3):Add a video viewport

* Fixed a couple of viewing issues

* fix(OHIF):If not all instances are used by a given provider, then continue to add items

* Added video data

* Add a basic e2e test for video display

* Adding a screen shot as requested
2022-02-24 11:55:12 -05:00
Alireza
73aa738c48
fix: dicomLocal dataSource metadata typo (#2717) 2022-02-21 12:51:15 -05:00
Alireza
ea390cc5d8
fix: icon styling with className (#2714)
* fix: icon styling with className

* docs: Add resources to docs
2022-02-17 11:23:38 -05:00
Alireza
5c8ee7f906
feat: OHIF-v3 UI Component Library (#2653)
* wip on storybook as a replacement for using UI components in docusaurus, since it causes too many problems

* fix: storybook webpack config

* feat: add more stories

* feat: add more stories

* feat: add more stories

* feat: fix logo and babel runtime error

* feat: move to mdx docs for ui

* feat: enhanced mdx for header and styles

* feat: Add button usecases

* feat: Add buttonGroup docs

* feat: Add docs and use case to cine and contex menu

* feat: fix decorators

* feat: add header and dropdown docs

* feat: add Icon and input docs

* feat: add more docs

* feat: add more stories

* fix: feedback section

* feat: Add doc page

* feat: Add typography and color stories

* yarn lock

* add analytics to v3-ui

* new banner image

* new viewport component

* update review comments
2022-02-10 14:08:34 -05:00
Alireza
eb77cb76b6
feat: Add training and resources section to docs (#2654)
* feat: Add training section to docs

* feat: Add more presentation slides

* update resources page
2022-02-10 10:01:26 -05:00
James Petts
509c41fbab
fix: retrieveSeriesMetadata (#2703) 2022-02-08 08:17:37 -05:00
Bill Wallace
0e2c31939c
feat(OHIFv3):Add static e2e data (#2665)
This change wraps the E2E test data into a github repository, which is then included in the test builds as static data.
That makes running the e2e tests as simple as:
yarn test:e2e:server
yarn test:e2e

without any need to have docker etc installed/running.
2022-01-31 14:29:20 -05:00
Bill Wallace
72bb074f21
feat: Add theme/config-point capability and docs. (#2641)
This is the initial addition of the config point settings to allow run time loading of GUI settings via "theme" files/parameters.
The intent is to add an example PR that shows when to use config point, how to configure it, write documentation for it etc.
2022-01-27 12:09:36 -05:00
Bill Wallace
84d9ec34fc
fix: Static wado query failing to match modalities in … (#2606)
* fix(OHIFv3):Fixed a static wado query failing to match modalities in study

* fix(OHIFv3):Query the study results locally against complete list

The static wado code currently always returns a full study list of all
studies available.  To support the client functionality, query the list
locally so it only returns the matching elementns.
2022-01-14 15:28:59 -05:00
Bill Wallace
c6a9571915
fix: Scrollbars on the thumbnails to be auto visible (#2605)
The thumbnail view had hte scrollbars not visible and they didn't
appear, and that made it hard to discover how to scroll.
2022-01-14 15:23:13 -05:00
Alireza
987eceb40a
fix: dicom json launch and documentation (#2642)
* fix: typo in metadataProvider class name

* docs: Add dicom-json documentation

* fix: documentation with s3 links
2022-01-10 21:27:24 -05:00
Patrick Wespi
c2bbfc2cac fix: remove temporary link element after csv download 2022-01-04 09:10:35 +01:00
Alireza
2f115e6ab0
feat: Add headers to prevent preflight requests (#2648) 2021-12-23 17:24:44 -05:00
Bill Wallace
277c3bf419
fix: Overlays were broken. (#2614)
* fix(OHIFv3):Overlays were broken.

Adds a retrieveBulkData to elements containing BulkDataURI so that
anyone display the data can retrieve the required information.

* fix(OHIFv3):Added a call in the wrong spot, removed it.

* docs(OHIFv3):Added some documentation as requested
2021-12-23 11:28:46 -05:00
pwespi
fac04ccb5e
docs: fix v3 branch name in getting-started (#2644)
Co-authored-by: Patrick Wespi <patrick.wespi@positrigo.com>
2021-12-23 08:47:16 -05:00
Daryl.Xu
0d55eee4dc
fix(typo): data should be date (#2643) 2021-12-23 14:24:19 +01:00
Bill Wallace
0a8e952c0f
fix: Remove unused commands (#2640) 2021-12-22 11:56:57 -05:00
Alireza
65563edb54
feat: Cornerstone extension viewport default enabledElement handler and installation guides (#2636)
* feat: Add initial doc for mode installation

* fix: cornerstone viewport should have default enabledElement handler

* docs: Add custom mode and extension installation guides

* docs: Add route address for template mode
2021-12-20 14:34:51 -05:00
Daryl.Xu
1d0b310d92
fix: typo (#2592) 2021-10-25 10:55:13 +02:00
Erik Ziegler
ef06b7683f
fix: Address weird prefetching issues (#2574)
* fix: Address weird prefetching issues

* bump cornerstoneTools version

* remove debugger
2021-10-04 09:27:50 +02:00
Alireza
1ec40d943d
fix: MetadataProvider number from string (#2530) 2021-09-28 13:23:05 +02:00
Erik Ziegler
3c9f3cb273
feat: Update to WADO Image Loader 4.0.3 to add dynamically imported WebAssembly codec support 🚀 (#2538)
* feat: update to prerelease of WADO Image Loader, add copy plugin to pull dist/dynamic-import into OHIF

* fix: Set empty public path

* perf: Add webpackPrefetch tags to lazy loaded components

* Switch to using webpack alias to use dynamic import version of WADO Image Loader

* fix lockfile

* prevent polyfilling zlib

* bump to wado image loader 4.0.3 with fix for public path
2021-09-24 09:06:52 +02:00
Alireza
898f93e19d
fix: qido wrongly using wado config (#2544) 2021-09-13 15:08:59 +02:00
Alireza
3bdb204285
fix: Local viewer demo config (#2541)
* fix: Local viewer demo
2021-09-09 13:02:33 -04:00
Alireza
f992a207b3
fix: About modal links (#2539) 2021-09-08 08:40:25 +02:00
Alireza
5ccab89a17 fix: Footer logo for docs page 2021-08-31 10:30:53 -04:00
Alireza
c64443b173 fix: Algolia search API 2021-08-31 09:52:55 -04:00
Alireza
a4ac75b401 fix: Change URL for docs to generate correct sitemaps 2021-08-31 09:31:41 -04:00
Alireza
69d62bdf59
feat: Add Algolia search for docs (#2529) 2021-08-30 13:00:39 -04:00
Alireza
46c2dc285c
feat: Add mode validity for the base viewer (#2525)
* feat: Add mode validity for the base viewer

* feat: Edit documentation and remove unnecessary files

* feat: Add probe tool documentation

* docs: Improved screenshots annotations

* Added new screenshot for measurements
2021-08-30 09:36:05 -04:00
Alireza
4f3f510cac fix: Revert Scrollbar visibility for now 2021-08-24 17:53:03 -04:00
Erik Ziegler
00d7192423 docs: Remove UI components for now, we will use Storybook instead later. Clean up links and introduction. (#2520) 2021-08-24 17:53:03 -04:00
Bill Wallace
2327b4ae12 feat: Add Static WADO display (#2499)
* Rebased to have just the static view changes

* Changes based on the PR

* Couple more changes for the PR

* Removed an extraneous log

* Fix the study worklist display when returning to the page

* Added some documentation on the static wado data source setup, and a
bounds check change on the Queue test which was failing

* PR updates - change the undefined study description to '' and remove the aws deploy

* Fixed the e2e tests to actually pass/fail correctly on actual results
2021-08-24 17:53:03 -04:00
Alireza
ca900f80e1
fix: hotkeys storage between studies and truncated patient names (#2516)
* fix: PatientName truncation in the worklist

* fix: hotkeys preferences
2021-08-19 08:05:33 -04:00
Erik Ziegler
eff70ae22c
fix: setting hotkeys was broken (#2496) 2021-07-29 21:57:58 +02:00
Erik Ziegler
4f41ba742d fix(css): make date range readable 2021-07-29 15:51:53 +02:00
Erik Ziegler
9b013dd38d fix(tailwind): Missed some changes when upgrading to tailwind 2.x 2021-07-29 15:51:53 +02:00
Erik Ziegler
3220af737c
fix(tailwind): Ensure tailwind properly purges unused utility classes (#2485) 2021-07-26 13:22:25 +02:00
Erik Ziegler
44e935f209
docs: Add v3 docs using docusaurus (Merge pull request #2468 from OHIF/feat/v2-main-docusaurus-netlify-monorepo) 2021-07-21 14:01:06 +02:00
Erik Ziegler
40af664c50 fix unit tests 2021-07-21 13:38:00 +02:00
Erik Ziegler
ca7506c5f0 Try to get views to work for component library 2021-07-21 13:16:50 +02:00
Erik Ziegler
ff28a2264b fixes for hotkeys usage in docusaurus 2021-07-21 12:58:15 +02:00
Erik Ziegler
7a9f113b91
Merge branch 'feat/v2-main' into feat/v2-main-docusaurus-netlify-monorepo 2021-07-20 15:55:21 +02:00
Alireza
3dec7cfcda
fix: Address various layout and prompt bugs (#2472)
* fix: layout should not reset when opening a new study in studyBrowser

* fix: added state to handle ignored SR series for hydration
2021-07-19 14:31:40 +02:00
Alireza
042dbb13b4
Fix: Google cloud config and tooltips (#2471)
* fix: google cloud config and tooltips

* fix: version number

* fix: cine player commandOptions
2021-07-16 13:32:51 -04:00
Erik Ziegler
c0df334233 Docs reorganization 2021-07-15 09:54:01 +02:00
Erik Ziegler
d6877cfcf9 add react-docgen to provide props tables for UI component library 2021-07-15 00:04:36 +02:00
Erik Ziegler
97805df68c reorganization to support SSR for component library in docusaurus 2021-07-14 15:26:06 +02:00
Erik Ziegler
31e3e03490 cleanup in component mdx for docusaurus 2021-07-14 00:24:05 +02:00
Erik Ziegler
7a79e42929 fixes for jsx live blocks 2021-07-14 00:15:02 +02:00
Erik Ziegler
09469e6ac5 wip on switching from docz to docusaurus 2021-07-13 23:48:16 +02:00
Erik Ziegler
69e36106e3 try some more things to fix docz 2021-07-13 17:44:04 +02:00
Erik Ziegler
6ffa07fee3 try to ignore some modules during SSR in docz 2021-07-13 17:23:13 +02:00
Erik Ziegler
c20d658836 bump mousetrap version 2021-07-13 14:07:34 +02:00
Erik Ziegler
a3bd9aa1c5 chore: fix sourceMap boolean in terser plugin 2021-07-08 15:46:20 +02:00
Erik Ziegler
825e13bcf3 chore: Upgrade to webpack 5, fix conflicting issues with react-router under docusaurus with yarn workspaces 2021-07-08 15:23:09 +02:00
Erik Ziegler
de412f2eef Merge branch 'feat/v2-main' into feat/v2-main-docusaurus-netlify-monorepo 2021-07-08 10:41:49 +02:00
Erik Ziegler
3a53479bb7 fix: OpenID Connect and Local route rendering 2021-07-08 10:29:41 +02:00
Alireza
f5ecc753f7 fix: hotkeys editing in user preferences 2021-07-08 10:09:20 +02:00
Alireza
bcd4aeb9e4 fix: removed re-direct to ohif upon error 2021-07-08 10:04:23 +02:00
Alireza
28412b10a1 feat: New favicon and logo 2021-07-08 10:04:23 +02:00
Alireza
c654d0f69e fix: cine dialogue appearance 2021-07-08 10:04:23 +02:00
Alireza
70e4c55920 feat: Add error handler to CWIL 2021-07-08 10:04:23 +02:00
Alireza
7e4f237906 fix: mobile screen nav color and logo 2021-07-07 14:48:53 -04:00
Alireza
9f03df77b0 fix: external link and redirecting url for Google healthcare 2021-07-05 20:47:30 -04:00
Dan Rukas
c3ca60533a
New image assets for v3 docs (#2463)
* New image assets for docs

* Type headers reduced and other small style fixes
2021-07-05 20:23:44 -04:00
Alireza
3a4a36fb55 feat: Add measurement tracking videos 2021-07-02 08:51:10 -04:00
Alireza
3fc56f373c feat: Add measurement tracking user guide 2021-07-01 23:24:03 -04:00
Alireza
39ff15aeaf fix: broken links to navigate between pages 2021-07-01 17:41:04 -04:00
Alireza
87de2620e3 feat: Add click to zoom for images 2021-06-30 21:37:09 -04:00
Alireza
39cc3baaad feat: Revised user guides based on feedbacks 2021-06-25 16:35:12 -04:00
Alireza
f0c5755cd0 feat: Change navbar links to open internally 2021-06-24 12:40:06 -04:00
Erik Ziegler
e7b32cc51e
feat: Support for OpenID Connect (#2431)
* feat: Add OpenID Connect support, speed up docker rebuilds

* fix: Switch Google Cloud API URL to v1

* chore: Remove redux-oidc and use our own components instead
2021-06-23 20:41:27 +02:00
Alireza
fc9cb53b2b fix: removed context search until public deploy 2021-06-22 22:36:45 -04:00
Alireza
e0e05d0a2e feat: Add nav links 2021-06-22 22:30:33 -04:00
Alireza
c810cf3d18 feat: Add footer styles 2021-06-22 21:02:14 -04:00
Alireza
02ddac28e4 feat: Add custom css for styling 2021-06-22 17:12:00 -04:00
Alireza
d5769be291 feat: Add i18n docs and light and dark theme styles 2021-06-21 19:35:41 -04:00
Erik Ziegler
22656307ea chore: Switch to monorepo setup for Netlify deploys
- fix font duplications, removed some unused webpack settings
2021-06-16 13:52:56 -04:00
Erik Ziegler
714e18e482 fix: add logo and google tracking code 2021-06-16 08:17:07 -04:00
Erik Ziegler
63aed69d08 fix: broken link in README 2021-06-16 08:11:15 -04:00
Erik Ziegler
936ae14ea0 fix: deployment previews for UI docs and Core docs
- workaround for docz issue https://github.com/pedronauck/docz/issues/1635
- tailwind purge
- fix docusaurus basename and docz missing props
2021-06-16 07:46:23 -04:00
Alireza
d501335143 working docs v3 2021-06-15 23:32:37 -04:00
Alireza
9d49bf4348 initial v3 docs working 2021-06-15 19:28:44 -04:00
Alireza
188d2c75b4 moved v3 docs 2021-06-15 19:14:37 -04:00
Alireza
1d281f7033 versioned docs v2 2021-06-15 19:12:47 -04:00
Alireza
ae18a92ee5 working docs v2 before versioning 2021-06-15 19:11:09 -04:00
Alireza
4971937171 versioned docs v1, and moved docs v2 2021-06-15 16:38:40 -04:00
Alireza
6e9381860b docs v1 before versioning 2021-06-15 15:54:55 -04:00
Alireza
572b6d40b5 v1 docs moved 2021-06-15 15:25:22 -04:00
Alireza
5e89b74920 Initial docusaurus commit 2021-06-15 11:50:38 -04:00
Alireza
5643f8f6d2
feat: Added documentation for OHIF-v3 (#2450)
* Added docs with new screenshots

* Added doc to architecture

* Added documentations to various extension modules

* Added more documentation to modes

* Added docs to managers

* Added docs for services

* Fixed deployment docs

* Added white labelling documentation

* Added i18n docs and measurement export
2021-06-15 11:15:29 -04:00
Alireza
1bf651e763
feat: Added support for i18n (#2439)
* Added translation for various react components in OHIF-v3

* Added a test language for debugging- test-LNG 

* Added copy for test language to not get overwritten
2021-06-15 10:56:33 -04:00
Alireza
fdb6ca41d6
feat: Support for local DICOM drag and drop (#2445)
* Added drag and drop from local and local data source

* fix: dicom SR drag and drop from local
2021-06-15 10:19:45 -04:00
Erik Ziegler
99b8dc4759
feat: Add White Labelling, Hanging Protocols, and tons of Extensions / Mode fixes
* modified

* new files in existing extensions/libraries/modes

* fixed bugs and tests

* Clean up

* fix: viewport display fixed

* Fixed configs for deployment

* Removed unnecessary files and functions

* Fixed default HP module

* Added white labelling

* Fixed hash routing

* Removed unnecessary routers

Co-authored-by: Alireza Sedghi <ar.sedghi@gmail.com>
2021-05-28 14:32:48 -04:00
Erik Ziegler
0db81b30f3
chore: Clean up unused files, imports, and work on getting end-to-end tests and unit tests running (#2272) 2021-03-01 16:52:54 +01:00
James A. Petts
414ebc6850 chore: Tag everything currently unused as legacy. 2021-02-11 17:29:07 +01:00
Erik Ziegler
8392c1f97e OHIF-387: Allow version number to be set via an environment variable 2020-12-02 13:29:19 +01:00
Erik Ziegler
e0a31caebf
fix: Call load if necessary before rehydration prompt. Jump to first measurement on rehydration (OHIF-369) (#2184) 2020-11-25 13:35:43 +01:00
Danny Brown
2f4cba28a5
fix: update DICOMSR and Measurement Panel copy to use L/W (#2174)
* fix: update DICOMSR and Measurement Panel copy to use L/W

* functional viewport

* support the active viewport for snapshot

* Support empty viewport case

* bump cs-tools to pick up misc. fixes
2020-11-18 00:14:52 -05:00
Danny Brown
0d9da69580
fix: update DICOMSR and Measurement Panel copy to use L/W (#2104) 2020-10-12 21:43:28 -04:00
Danny Brown
dc2a58da91
fix: support for delete SR aliased measurements (#2092) 2020-10-05 23:40:58 -04:00
Danny Brown
23764f9b82
fix: bump cornerstone-tools version to update rectangleROI behavior (#2090) 2020-10-05 22:05:12 -04:00
Danny Brown
d248f71ea5
fix: swallow update-image error for "clicking annotation arrows"; as doing _nothing_ if the image isn't loaded yet is perfectly okay (#2089) 2020-10-05 21:48:09 -04:00
Danny Brown
1c33c3f04b
fix: allow pointer events to pass through to arrow navigation buttons (#2088) 2020-10-05 21:47:20 -04:00
Danny Brown
d25c0d311a
fix: set a min-width so flexbox doesn't shrink our lil svg (#2087) 2020-10-05 21:46:35 -04:00
Danny Brown
0b80f19bfd
fix: ellipse should use exponent (#2086)
* fix: prevent app from blowing up when snapshot modal is opened

* fix: use superscript tag to indicate ellipse is mm squared

* fix: update measurement item to allow us to specify html in MeasurementItem display text
2020-10-05 21:45:43 -04:00
Danny Brown
285a188064
fix: update csv column titles to be consistent (UIDs) (#2085) 2020-10-05 21:44:42 -04:00
Danny Brown
93fa71a2bf
fix: temporarily hide/disable capture until it can be repaired (#2084) 2020-10-05 21:43:52 -04:00
Danny Brown
6c40f581a6
fix: autofocus reject SR dialog input focus to "Yes" button (#2083) 2020-10-05 21:43:12 -04:00
Danny Brown
380acc1331
fix: for incorrect toolbar state between routes (#2082) 2020-10-05 21:42:30 -04:00
Danny Brown
5689bf5369
fix: sort study cards by study date, descending (#2081) 2020-10-05 21:40:37 -04:00
Danny Brown
6a0563f1cf
fix: update csv column titles to be consistent (UIDs) (#2080) 2020-10-05 21:27:36 -04:00
Danny Brown
746dd6cb53
Dannyrb/fix/button colors quick (#2074)
* add _redirects file for when output target is netlify

* temporarily swap dialog primary/secondary button types for dialogs
2020-10-01 22:09:15 -04:00
Danny Brown
eb0130edfa
fix: set a min-width so flexbox doesn't shrink our lil svg (#2075) 2020-10-01 22:09:03 -04:00
Danny Brown
4ae848761d
fix: swallow update-image error for "clicking annotation arrows"; as doing _nothing_ if the image isn't loaded yet is perfectly okay (#2076) 2020-10-01 22:08:51 -04:00
Danny Brown
0da451c26a
fix: allow pointer events to pass through to arrow navigation buttons (#2077) 2020-10-01 22:08:40 -04:00
Danny Brown
56824b9142
fix: button colors quick (#2056)
* add _redirects file for when output target is netlify

* temporarily swap dialog primary/secondary button types for dialogs
2020-09-22 21:41:42 -04:00
Danny Brown
2fc7169fa4
fix/chore: Various style improvements (#2015)
* Update all the icons

* Turn off global tool sync; watch as the world burns

* Shift a bunch of things around so we can start tracking/setting per element

* ToolBarService to initiate one of three different calls; callback passed to all button types

* SplitButton and Toolbar Button to use new `onInteraction` prop and new toolbar state

* Changes to toolbar button interface and config

* Fix broken layout selector

* Update SR viewport to activate tools in viewport component

* Duplicate activation logic in measurement tracking extension

* Add alternative/dashed variants for SR Viewport

* pass through "setToolActive" commands for other viewport types

* fix small overlay bugs (no wwwc or scale info)

* Show SpacingBetweenSlices instead of PixelSpacing in patient information dialog

* Fix prop-types

* Update tracked viewport to have alternative tracked styling

* alt styling for SR viewports

* Update to support isLocked + isRehydratable

* fix broken logic

* fix broken logic

* switch icon style

* fix icon styles

* hover and click to start flow

* expedited workflow when data is not dirty (just after SR hydration)

* fix: setting elliptical roi tool

* fix arrow annotate dialog

* fix: do not show learn more button for now

* remove dead code

* simpler cache invalidation

* simpler cache invalidation part 2

* Fix for unable to spand study cards on separate pages

* fix: viewport grid area top padding should align with sidepanel gap

* fix: don't wrap split button list item text

* fix: cine player moz/chrome styles

* fix: split button arrows

* fix: tighten toolbar and splitbutton styles

* chore: clean up worklist sort logic
2020-09-21 10:42:53 +02:00
Danny Brown
ba38cebcd7
fix: duplicate measurements on hydration (#2047)
* chore: remove lingering debugger statements

* fix: order of arguments on `MeasurementService.remove` calls

* fix: ensure report is dirty when intial measurements are added
2020-09-17 22:02:32 -04:00
Danny Brown
876cc58348
fix: use instance number instead of index number in stack (#2046) 2020-09-17 16:28:41 -04:00
Danny Brown
41316fead0
fix: display instance num sr viewport (#2045)
* fix: duplicate and use TrackingViewport's overlay w/ SR Viewport

* chore: correct component naming for OHIFTrackingViewport
2020-09-17 16:08:11 -04:00
Danny Brown
3911d74cf4
fix: update reject/delete dialog title, body copy, and button text (#2043) 2020-09-16 22:45:13 -04:00
Danny Brown
5a66920d1d
fix: Misc. workflow fixes [OHIF-363] (#2040)
* fix: "Adding measurements to existing report" portion of issue

* fix: notes from investigation to fix "Creating a new report while tracking measurements"

* fix: "Measurements spanning multiple studies"

* chore: comments explaining isDirty behavior
2020-09-16 21:56:51 -04:00
Danny Brown
cae54b0779
Fix/update branch cherry pick (#2039)
* Update all the icons

* Turn off global tool sync; watch as the world burns

* Shift a bunch of things around so we can start tracking/setting per element

* ToolBarService to initiate one of three different calls; callback passed to all button types

* SplitButton and Toolbar Button to use new `onInteraction` prop and new toolbar state

* Changes to toolbar button interface and config

* Fix broken layout selector

* Update SR viewport to activate tools in viewport component

* Duplicate activation logic in measurement tracking extension

* Add alternative/dashed variants for SR Viewport

* pass through "setToolActive" commands for other viewport types

* fix small overlay bugs (no wwwc or scale info)

* Show SpacingBetweenSlices instead of PixelSpacing in patient information dialog

* Fix prop-types

* Update tracked viewport to have alternative tracked styling

* alt styling for SR viewports

* Update to support isLocked + isRehydratable

* fix broken logic

* fix broken logic

* switch icon style

* fix icon styles

* hover and click to start flow

* expedited workflow when data is not dirty (just after SR hydration)

* fix: setting elliptical roi tool

* fix arrow annotate dialog

* fix: do not show learn more button for now

* remove dead code

* simpler cache invalidation

* simpler cache invalidation part 2

* Fix for unable to spand study cards on separate pages
2020-09-14 21:18:46 -04:00
dannyrb
365ba2fa72 bump react-cornerstone-viewport version 2020-08-20 12:30:38 -04:00
dannyrb
ec9b2e1dd0 Merge branch 'feat/v2-main' of github.com:OHIF/Viewers into feat/v2-main 2020-08-20 12:29:58 -04:00
dannyrb
9587d27b02 fix: typo 2020-08-19 23:14:04 -04:00
Igor Octaviano
8638830d15
OHIF-329: Increase fetch limit when paginating more than 101 studies (#1985)
* ohif-329: increase fetch limit when paginating more than 101 studies

* ohif-329 cr update: use offset approach

* ohif-329: remove logs

* ohif-329: add comment

* ohif-329: use cachemap approach

* ohif-329: update total calculation

* fix: settings/about menu should appear over study list filters

* fix: about menu positioning for viewer template

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-08-19 23:12:10 -04:00
Danny Brown
8babc8f980
perf(stackPrefetch): Added stackPrefetch config with 20 max concurrent requests 2020-08-19 22:26:33 -04:00
Igor Octaviano
db39cc2fde
OHIF-298: Fix dropdown color in win browsers (#1981)
* ohif-298: use new select in pagination

* ohif-298: add menu placement

* ohif-298: update border

* ohif-298: fix sticky menu

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-08-19 16:17:05 -04:00
Igor Octaviano
8cea1a04d6
OHIF-333: Split Button (#1988)
* ohif-333: add component foundation

* ohif-333: add expandable content and mocked data

* ohif-333: improve ListMenu component for the new toolbar button and add radio behavior

* ohif-333: add click outside behavior and update primary and secondary props

* ohif-333: separate classes from markup

* ohif-333: fix layout issues

* ohif-333: extract window level component

* ohif-333: update component returns

* ohif-333: update chevron thickness

* ohif-333: remove is active prop

* Delete lerna-debug.log

* ohif-333: clean toolbar and use example in ui package

* ohif-333: update styles to avoid word break

* ohif-333: fix ui package build

Co-authored-by: Erik Ziegler <erik.sweed@gmail.com>
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-08-19 15:49:00 -04:00
James Petts
42b02a62d3
OHIF-326, export as CSV. (#1976) 2020-08-19 15:31:25 -04:00
James Petts
68332701ab
[OHIF-309] - Users should be able to delete an SR from the side panel when the behavior is supported by the data source (#1952)
* Remove trailing zeroes from patient age

* WIP reject + remove displaySet.

* ohif-316: Update DICOM SR thumbnail design to include a delete action (#1948)

* add "supportsReject" to netlify config

Co-authored-by: Igor Octaviano <igoroctaviano@gmail.com>
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-08-19 15:27:34 -04:00
Igor Octaviano
760e2a62ae
OHIF-323: Cine Dialog (#1961)
* ohif-323: add cineplayer flow

* ohif-323: improve toolbar flow of cine

* ohif-323: improve cine styles

* ohif-323: use toggle instead of set

* ohif-323: add compatibility comment

* ohif-323: move cine logic to command

* ohif-323: cr update

* ohif-323: remove typo and update svg title

* ohif-323: remove log

* ohif-323: update props and remove dead code

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-08-19 15:24:07 -04:00
Igor Octaviano
3e944780dc
OHIF-332: Users should be able to see all available hotkeys and language settings in one place (#1895)
* OHIF-330: Update Modal Styles

* feat/ohif-332: finish raw ui

* feat/ohif-332: update mode configuration strategy

* feat/ohif-332: fix hotkey errors

* feat/ohif-332: update hotkey logic with recent merged changes

* feat/ohif-322: wrap

* feat/ohif-322: add disable state

* ohif-332: cr updates

* ohif-332: disable

* ohif-332: cr updates

* ohif-332: extract header component

* ohif-332: cr update to fix merge conflicts and design issue

Co-authored-by: Rodrigo Antinarelli <rodrigoantinarelli@gmail.com>
2020-08-19 15:02:59 -04:00
Erik Ziegler
ae3d05ebf7
OHIF-276: Fix UI performance issues related to ToolbarService (#1969) 2020-08-17 10:19:12 +02:00
Igor Octaviano
e4092d0349
OHIF-145: update study list title to sentence case (#1991) 2020-08-17 10:10:07 +02:00
Igor Octaviano
ef163cd702
Fix broken UI package build (#1990)
* Use path instead of alias

* Add missing pacakges

* Use path in viewers

* Use path in contextProviders

* Add base to config

* Add conditionals for window

* Copy config to avoid breaking build

* Update and lock versions

* Update lock file

* Remove scaling config

* Fix broken versions of react date

* Fix broken dev
2020-08-14 14:25:08 -04:00
Igor Octaviano
e04f74499f
OHIF-301: Add sorting to worklist series (#1960)
* ohif-301: add sorting to work list series

* ohif-301: clearadd series date to qido

* ohif-301: add series date to qido

* Update qido.js

Co-authored-by: Erik Ziegler <erik.sweed@gmail.com>
2020-08-11 21:01:48 -04:00
James Petts
3267706b33
[OHIF-302] fix: Set SeriesNumber for generated SRs to 4700 or above (#1953) 2020-08-07 16:57:40 +02:00
Igor Octaviano
fc71ad0e4f
OHIF-343: jump to image on measurement edit (#1978) 2020-08-07 16:53:42 +02:00
Igor Octaviano
381165085a
OHIF-303: Disable SVG Cursors for tools (#1979) 2020-08-07 16:46:02 +02:00
Igor Octaviano
4af0933406
Merge pull request #1973 from OHIF/feat/ohif-318
OHIF-318: When the default sort "descending by study date" is applied, the UI should reflects the applied sorting
2020-08-07 11:26:32 -03:00
igoroctaviano
6d32225954 ohif-318: add comment 2020-08-07 11:25:25 -03:00
Igor Octaviano
5fbcec99f8
ohif-319: fix asc and desc order on sort label (#1974) 2020-08-07 09:03:30 +02:00
igoroctaviano
c627280982 ohif-318: reflect default sorting on ui 2020-08-06 17:14:49 -03:00
James Petts
58c2c00663
Fix caching issues with related studies. (#1970) 2020-08-06 17:25:42 +02:00
Igor Octaviano
fe52037fc2
OHIF-299: Fix Study Date sorting on Study List when clicking the label (#1966) 2020-08-06 12:36:28 +02:00
James Petts
8e6b3ac580
Show 1-based in stack position of measurement in measurements panel. (#1967) 2020-08-06 12:25:27 +02:00
James Petts
2ded8b7ee8
change DP of SR viewport to 1dp (#1968) 2020-08-06 11:10:42 +01:00
Igor Octaviano
5a82e09e29
ohif-321: update study list sorting logic (#1964) 2020-08-06 10:34:11 +02:00
Igor Octaviano
2446f8b86c
ohif-320: remove outline from span (#1965) 2020-08-06 10:33:00 +02:00
James Petts
401a2e38c8
[OHIF-193 + OHIF-313] (#1955)
* create context menu

* OHIF-193: Add context menu integration with measurement service

* OHIF-193: Update comments

* OHIF-CR Update: Add requested updates

* CR Update: Update measurement service remove function

* CR Update: Update casing

* CR Updates

* Update cornerstone measurments when the label is edited in the measurement service.

* Implement click outside behavior

* Address reviewer comments.

Co-authored-by: Rodrigo Antinarelli <rodrigoantinarelli@gmail.com>
Co-authored-by: igoroctaviano <igoroctaviano@gmail.com>
2020-08-05 13:56:02 +01:00
Igor Octaviano
39e68f3193
ohif-300: add primary to allstudies in all tab (#1954) 2020-08-04 16:45:53 +01:00
Danny Brown
2a51d75f77
[OHIF-339] - workflow changes (#1931)
* workflow changes

* Cherry pick OHIF-310 into this PR.

* fix label bug and dead code

* remove comment

* Wire up CreateReportButton

* fix additionalFindingTypes + save interaction

* Remove unused createReportAsync call

* stub for report hydration prompt

* Update PR

* Remove debuggers

* push updated code

* Push updates

* push

* fix sidebar save

* enable tracking of new study or series

* fix for duplicate created report series in sidebard

* fix for unexpected viewport dialog after visiting study list then a new study

* Fix for hydration not marking multiple series as active

* Reviewer changes.

* Respond to final review comment, add series description setting for export.

Co-authored-by: James A. Petts <jamesapetts@gmail.com>
2020-08-04 10:11:23 +01:00
James Petts
5f487840a1
OHIF-325: Remove trailing zeroes from patient age (#1941) 2020-07-31 19:00:00 +02:00
Igor Octaviano
4d1d73b89c
OHIF-311: Set nav arrows as active for all viewports (#1930) 2020-07-28 10:44:48 +02:00
Erik Ziegler
3d48a2a2c7 chore: Update react-hot-loader to avoid crashes during hot loading of workspace modules 2020-07-24 22:15:39 +02:00
James Petts
5e00020fe3
OHIF-67: Fix Magnify issues by updating CornerstoneTools (#1923) 2020-07-24 21:51:52 +02:00
James Petts
32e28d2090
Arrow Annotate workflow updates. (#1921) 2020-07-24 15:34:10 +01:00
James Petts
1f1ef6a3f9
OHIF-328 up/down arrows keys on SR viewport. (#1922)
* Fix arrow key scroll on SR Viewport.

* Remove debuggers
2020-07-24 15:32:44 +01:00
Erik Ziegler
55cf9f2306
OHIF-285/OHIF-274: Fix default hanging of display sets into the ViewportGrid (#1917)
* OHIF-285/OHIF-274: Fix default hanging of display sets into the ViewportGrid

Co-authored-by: James A. Petts <jamesapetts@gmail.com>
2020-07-24 11:51:57 +01:00
Erik Ziegler
9df57e7f7f
OHIF-322: Fix tool settings to stop referencing function name because it breaks on minification (#1919) 2020-07-24 11:10:38 +02:00
Erik Ziegler
4528ee9175
OHIF-324: Switch Probe to DragProbe and apply minimal strategy (#1918) 2020-07-24 08:53:10 +02:00
Rodrigo Antinarelli
15f20b445b
fix: OHIF-215 - Patient information should truncate w/ ellipsis instead of expanding box (#1875) 2020-07-22 22:04:05 +02:00
Rodrigo Antinarelli
afcd3f5263
fix: OHIF-307 - Click outside patient info should close tooltip (#1886) 2020-07-22 21:07:20 +02:00
Rodrigo Antinarelli
a6b7657840
OHIF-260 - "Clear Filters" button should not be visible on first load, when no filters are set (#1873) 2020-07-22 20:51:20 +02:00
Rodrigo Antinarelli
8ca3769ba1
OHIF-304 - Create TooltipClipboard component for copying from Study List (#1887)
* Create TooltipClipboard component

* basic doc page for TooltipClipboard

* enable clipboard tooltip for specific rows

* wrap component with tooltip clipboard

* remove logic from ui component

* set clipbboard message

* minor refactor to add a delay to show the tooltip clipboard

* delay to hide comment

* Remove titles which were interfering with tooltips

Co-authored-by: Erik Ziegler <erik.sweed@gmail.com>
2020-07-22 20:25:51 +02:00
Erik Ziegler
8c30b21471
OHIF-284: Fix jump to measurement breaking keyboard shortcuts (#1914) 2020-07-22 19:58:39 +02:00
Erik Ziegler
f95a8c1530
fix: Use same config for branch deploys as for deploy previews (#1893)
* fix: Use same config for branch deploys as for deploy previews

* chore: remove unnecessary duplicate build-deploy-preview.sh file

* fix: Attempt to workaround Netlify cache issues for Lerna repos

* chore: Remove useless debug file

* fix: try to make Gatsby less slow
2020-07-22 19:41:10 +02:00
James Petts
a4f286feee
[OHIF 284] - JumpToMeasurement + prevent layout change on scroll Prevent layout change on scroll (#1889)
* No more setting on debounce, jumpToMeasurement service set up.

* Fix bug causing a race condition sometimes if you click super fast.

* Optimise rendering of Tracking viewport slightly.

* element => targetElement

* Remove complete TODO

* Respond to reviewer comments.

* Fix e2e workflow.

* Fix regression that removed highlighting on jump to.

* Make sure jump to works from panel as well as viewport.

* Fix typo and remove debugger.

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-07-22 19:40:40 +02:00
Igor Octaviano
4985fbf5a6
Disable canvas if not active (#1890) 2020-07-10 15:52:17 -04:00
Rodrigo Antinarelli
8b1a6b2acb
feat: OHIF-331 - About Modal (#1894)
* OHIF-330: Update Modal Styles

* feat: OHIF-331 - About Modal

* add dynamic values for about modal

* fix icon
2020-07-10 15:49:53 -04:00
James Petts
59003362c3
[OHIF-278] Jumping to a measurement should set it to "active" in cornerstone-tools, highlighting it as green (#1888)
* Set cornerstone tool active when jumping to measurement.

* Remove debugger statement

* Also set active on left/right actionbar buttons.
2020-07-10 15:38:40 -04:00
James Petts
3eba027003
[OHIF-288] Rehydrating SRs is missing Labels (#1885)
* WIP

* Finish OHIF-288, need to update dcmjs.

* Remove unused copied resources.

* Cleaned up label import code.

* Update for dcmjs Findings -> Finding.

* Update dcmjs

* Remove debuggers

* Respond to reviewer comments.

* update dcmjs version

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-07-10 15:11:22 -04:00
James Petts
ce40f04f2e
[OHIF-295] - Esc button should stop the creation of a measurement or annotation (#1883)
* WIP, need to fix arrow making measurement

* Update cornerstoneTools to fix cst arrow annotate event bug.
2020-07-10 15:00:10 -04:00
Rodrigo Antinarelli
89cbe5bf2e
fix: OHIF-255 Fixes Thumbnail height for active item (#1876) 2020-07-10 14:52:58 -04:00
Igor Octaviano
8d61e3ae4c
OHIF-8: Pass fuzzymatching option from config (#1837)
* Add fuzzmatching property

* Update param

* Add wildcards
2020-07-10 11:59:29 -04:00
Rodrigo Antinarelli
436df9ed30
OHIF-330: Update Modal Styles (#1891) 2020-07-10 11:48:51 -04:00
Igor Octaviano
67f91251d8
fix/ohif-remove-measurements-label-notification (#1884) 2020-07-10 16:06:05 +01:00
Igor Octaviano
1507f9eb61
Add missing props (#1879) 2020-07-10 15:29:57 +01:00
Rodrigo Antinarelli
b28a70520e
fix: OHIF-219 - Viewport Labels should be sequential (#1881) 2020-07-10 15:06:45 +01:00
dannyrb
066ba97bc9 Temporarily disable SegmentationMode 2020-07-06 08:42:06 -04:00
James Petts
25ded882ec
Disable double click for now. (#1872) 2020-07-06 08:28:21 -04:00
dannyrb
9099e197fb Add missing and non-retired modalites to modality dropdown 2020-07-06 08:27:48 -04:00
dannyrb
1612c05bbe Make mrn slightly larger 2020-07-06 08:06:18 -04:00
dannyrb
31581744eb fix studydate/time tooltip 2020-07-06 07:36:30 -04:00
dannyrb
e0b1bece37 Fix paging cutting off one-page too soon 2020-07-06 07:31:25 -04:00
Danny Brown
86327cd808
bump RCV version and use new prop to control resize/refresh behavior (#1869) 2020-07-04 13:25:23 -04:00
Danny Brown
e2c72d48fe
Add support for "additional findings" section (#1867) 2020-07-03 15:57:35 -04:00
Igor Octaviano
b7760dc291
OHIF-228: Viewports should not be clipped after resizing (#1865)
* Fix overflow of viewports

* Apply changes to sr

* Add double click back

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-07-03 14:50:33 -04:00
James Petts
14797a8973
[OHIF-261 & OHIF-262] (#1862)
* WIP

* Reset viewport grid on mode switch.

* Make lifecyclehooks distinct from modules. Add needed SR hydration state on creation.

* Update extensions/cornerstone/src/init.js

* Remove unused REMOVE_MEASUREMENT listener.

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-07-03 18:18:59 +01:00
James Petts
4dfe144bf8
[OHIF-251] - Double click to maximise viewport/ revert to previous layout. (#1860)
* WIP

* double click to maximise implemented at the viewport grid layer.

* Remove memory of cached layout when the layout is changed, or a different displaySet is set.

* WIP fix double click for cornerstone.

* Update CST

* Prevent maximising when double clicking the action bar

* Update extensions/dicom-sr/src/OHIFCornerstoneSRViewport.js

* Apply suggestions from code review

* Fix conflicts.

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-07-03 18:12:33 +01:00
James Petts
5ee4598bbe
[OHIF-173] - Jump between measurements (#1863)
* jump between measurements.

* Apply suggestions from code review

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-07-03 12:44:20 -04:00
Igor Octaviano
11fbe4cf01
OHIF-223: Add "Clear" all measurements to annotation toolbar (#1861)
* Add clear button

* Use james event

* Create new commands module to default
2020-07-03 12:39:41 -04:00
James Petts
61fc093fc5
[OHIF-248] - Update cornerstoneTools version to get handle rendering improvements. (#1854)
* Only process SR on consumption of viewport.

* Hide handles whilst moving + correct hide handles on hover.

* Up CST version

* Update cst

* Remove added cornerstone viewport checks
2020-07-03 10:51:38 +01:00
Rodrigo Antinarelli
0e6c9258b7
OHIF-202: Add tooltip for locked/unlocked SR viewport icon (#1858)
* OHIF-202: Add tooltip for locked/unlocked SR viewport icon

* fix edit margin

* Update platform/ui/src/components/ViewportActionBar/ViewportActionBar.jsx

* Apply suggestions from code review

* Fix tooltip (func comp)

* Don't render the `0` of data.length used to check a render condition

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-07-02 23:58:50 -04:00
Rodrigo Antinarelli
cf91b0f942
OHIF-252: "Recent" and "All" tabs should be disabled if there are no studies on their category (#1859)
* OHIF-252: "Recent" and "All" tabs should be disabled if there are no studies on their category

* fix button props and avoid onClick on disabled state
2020-07-02 23:26:06 -04:00
Igor Octaviano
454474ddb4
Fix typo (#1857) 2020-07-02 22:34:53 -04:00
Igor Octaviano
849c8a6ae1
Add new loading component (#1855) 2020-07-02 22:34:15 -04:00
Igor Octaviano
920c3e9455
OHIF-149: Apply default sort of Study Date descending (most recent -> oldest) when < 101 studies (#1850)
* Add dynamic default sorting

* Use different approach to sort

* Switch strategy to one that works even when filters are applied, but sort is not (there is no dicomweb sort/orderby)

Co-authored-by: dannyrb <danny.ri.brown@gmail.com>
2020-07-02 22:23:42 -04:00
Rodrigo Antinarelli
491afaa43d
fix: UI tweaks to satisfy OHIF-161, OHIF-254, OHIF-167, OHIF-249, OHIF-170, OHIF-162
* add group hover for borderColor

* measurements action buttons hover state

* fixes and button/buttongroup/iconButton refactor

* OHIF-161: Fix Tracked/Untracked Text in Thumbnail's Tooltip

* OHIF-254: Format SR series date

* OHIF-167 - Fix Study Date Time format

* OHIF-249: Fix viewport border thickness and action bar min height

* pass viewportIdentificator to SR Thumbnail

* show tooltip when hover over the SR thumbnail

* OHIF-170: Display tooltip when hovering over an untracked series in the Viewport Action Bar

* Undo accidental date change

* Sneak in "Create Report" messaging for createReport notifications

* Fix text clipping

* Add no-select text styles for action bar, thumbnail, and thumbnail no image (sr)

* fix for OHIF-162

Modified to remove Viewport Identifier. Text now only reads: “Structured Report”This was partly to address a bug where the Viewport Identifier was incorrect for all but the first displayed SR. Component API changed for ThumbnailNoImage to accomodate any generic “modalityTooltip”

* Some ViewportPane resize magic

Co-authored-by: dannyrb <danny.ri.brown@gmail.com>
2020-07-02 21:41:55 -04:00
Igor Octaviano
a156eadcb7
OHIF-208 (#1842)
* Set measurement as active

* Add basic dialog component

* Update styles and prop types

* Jump to image

* Update dialog

* Format date

* Update summary to use primary modalities

* delete empty studySummary page

* add missing PropTypes import

* fix for accidental sync'd viewports

* CR Updates

* CR Update avoid cache of measurements

* Use get measurement

* Add comment to edit function

* Remove request and merge modalities from series

* Update dependency: react-cornerstone-viewport@2.3.9

react-cornerstone-viewport
  * @ohif/extension-cornerstone: 2.3.8 → 2.3.9
  * @ohif/extension-dicom-sr: 2.3.8 → 2.3.9

* Update extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.js

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>

* Add debugs

* remove console.debug

* Update frameindex to imageindex

* Use new rcv debounced function

* Fix hovering

* Update dialog text

* Dismiss dialogs on esc

* Update dependency: react-cornerstone-viewport@3.0.0

react-cornerstone-viewport
  * @ohif/extension-cornerstone: 2.3.9 → 3.0.0
  * @ohif/extension-dicom-sr: 2.3.9 → 3.0.0

* OHIF-237

* remove console.debug

* Remove dead code brought in from rebase

* EmptyViewport should not display a message

* Remove more dead code from rebase

* fix variable naming

* remove unused hook

* bump yarn lock

* formatting

* Add arrow dialog

* Filter based on trackedSeries

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-07-02 16:53:38 -04:00
Igor Octaviano
ae05de18af
Add truncate 2 lines class (#1853) 2020-07-02 10:41:53 -04:00
James Petts
c36f853a38
[OHIF-235] Lazy processing of DICOM SR for viewport. (#1849)
* Only process SR on consumption of viewport.

* remove debugger

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-07-02 10:17:04 -04:00
Igor Octaviano
f24f0bb11d
Fix preset values for window level (#1851) 2020-07-02 10:13:14 -04:00
Igor Octaviano
279d1db997
Update measurement table display text to use cornerstone rendered value fixed points (#1852) 2020-07-02 10:12:10 -04:00
James Petts
801bf73a34
Update dcmjs to fix bidirectional issue. (#1848) 2020-07-02 10:56:36 +01:00
Danny Brown
cc55d46b37
Merge pull request #1846 from OHIF/OHIF-200
[OHIF-200] - Add callouts to all DICOM SR read only measurements.
2020-07-01 10:24:01 -04:00
James A. Petts
44c2927963 Fix export 2020-07-01 15:12:49 +01:00
James A. Petts
7c3c717d33 Update dcmjs 2020-07-01 14:56:25 +01:00
James A. Petts
413f5c9003 Remove debugger statements. 2020-07-01 14:35:29 +01:00
James A. Petts
7092fc858e Don't reposition textboxes for now. 2020-07-01 14:32:54 +01:00
James A. Petts
e3f2e26e3b Render text properly, render arrow + freetext. Need to move textboxes appropriately. 2020-07-01 11:59:29 +01:00
James A. Petts
d956c3008c Pull in main 2020-07-01 10:12:41 +01:00
James Petts
bc2bde890b
OHIF-190 - Rehydrate PR (#1835)
* WIP rehydration.

* WIP OHIF-190 rehydrate.

* Remove debugger statements.

* Merge in and fix after OHIF-197 and OHIF-198

* Remove console.log

* Fix typo

* fix length tracking bug

* Respond to reviewer comments.
2020-07-01 10:08:56 +01:00
Danny Brown
25de9046b3
Merge pull request #1843 from dannyrb/dannyrb/polish-viewport-notification-save-round-trip
Dannyrb/polish viewport notification save round trip
2020-06-30 23:22:29 -04:00
dannyrb
7b31e62e31 Fix undefined data source for local download/export 2020-06-30 22:54:36 -04:00
dannyrb
c8f48cf1fe pass servicesManager and extensionManager all the way to our UI prompts; use in exposed createReportAsync call 2020-06-30 22:54:09 -04:00
dannyrb
9fb3fe6dc2 Shift create report to a separate file 2020-06-30 22:32:54 -04:00
Danny Brown
d739b52e3e
Merge pull request #1841 from dannyrb/dannyrb/ohif-157/default-to-primary-study-expanded
Dannyrb/ohif 157/default to primary study expanded
2020-06-30 22:10:11 -04:00
dannyrb
4b58d925d9 Use ImageViewer's StudyInstanceUIDs to set the initial/default list of expanded study ids 2020-06-30 22:08:41 -04:00
Danny Brown
06bf4d2960
Merge pull request #1840 from OHIF/feat/ohif-178
OHIF-178: Bump cs tools to fix issue
2020-06-30 21:03:41 -04:00
Danny Brown
7dbd4cb448
Merge pull request #1839 from OHIF/fix/OHIF-37-thumbnailDoubleClick
fix: OHIF-37 / OHIF-160 - Thumbnail double click + Active thumbnail
2020-06-30 20:59:35 -04:00
igoroctaviano
7f6aa0e260 Update dependency: cornerstone-tools@4.16.1
cornerstone-tools
  * @ohif/core: 4.16.0 → 4.16.1
  * @ohif/extension-cornerstone: 4.16.0 → 4.16.1
  * @ohif/extension-dicom-rt: 4.16.0 → 4.16.1
  * @ohif/extension-dicom-segmentation: 4.15.1 → 4.16.1
  * @ohif/extension-dicom-sr: 4.16.0 → 4.16.1
  * @ohif/extension-measurement-tracking: 4.15.1 → 4.16.1
  * @ohif/extension-vtk: 4.16.0 → 4.16.1
  * @ohif/viewer: 4.16.0 → 4.16.1
2020-06-30 21:55:59 -03:00
dannyrb
b967d064f0 Tidying up naming 2020-06-30 20:49:37 -04:00
Rodrigo Antinarelli
4b8dcef956 Merge branch 'feat/v2-main' of https://github.com/OHIF/Viewers into fix/OHIF-37-thumbnailDoubleClick 2020-06-30 17:59:57 -03:00
Rodrigo Antinarelli
0f78ae3b57 fix: remove focus if clicked outside thumbnail 2020-06-30 17:53:36 -03:00
Danny Brown
77bdd6c807
Merge pull request #1838 from dannyrb/dannyrb/fix/correct-available-modes
Dannyrb/fix/correct available modes
2020-06-30 16:18:57 -04:00
dannyrb
236b89a551 Make sure measurements table updates 2020-06-30 16:04:07 -04:00
dannyrb
064df8a509 Fixing lint errors in PanelMeasurementTableTracking 2020-06-30 15:49:05 -04:00
dannyrb
e3ced7e294 Add segmentation mode at appInit 2020-06-30 15:48:42 -04:00
dannyrb
eb0f38ebf2 Prevent default measurementpanel crash 2020-06-30 15:48:24 -04:00
dannyrb
e82b6b3c5e Rename longitudinal mode to "Basic Viewer"; matching design 2020-06-30 15:30:47 -04:00
dannyrb
92314513f6 Delete "basic" example mode, replace with segmentation mode 2020-06-30 15:20:14 -04:00
Rodrigo Antinarelli
520e1c0774 fix focus styles 2020-06-30 16:05:18 -03:00
Rodrigo Antinarelli
90ca52585a update thumbnail props 2020-06-30 15:57:24 -03:00
Rodrigo Antinarelli
71544df16f pass currentDisplaySetUID 2020-06-30 15:55:17 -03:00
Rodrigo Antinarelli
f08ce57c0c pass isActive prop 2020-06-30 15:54:34 -03:00
Rodrigo Antinarelli
34a9733dfe replace onClick for double click and styles fixes 2020-06-30 15:54:21 -03:00
Rodrigo Antinarelli
cf30a6da88 define currentDisplaySetData in viewport grid provider 2020-06-30 15:53:57 -03:00
Rodrigo Antinarelli
c9a365f7e2 double click thumbnail loads SR in viewport 2020-06-30 15:47:09 -03:00
Danny Brown
4d2774c87b
Merge pull request #1836 from OHIF/feat/ohif-179
OHIF-179: UI for successful posting of SR data to PACS.
2020-06-30 14:07:04 -04:00
igoroctaviano
04baaf941b Update snackbar styles 2020-06-30 14:25:10 -03:00
igoroctaviano
5ca6757b44 Add error message of generate reportt 2020-06-30 14:02:23 -03:00
James A. Petts
56358ad95f WIP callout in SR viewport. 2020-06-30 18:00:37 +01:00
James A. Petts
2704bd7cbc fix length tracking bug 2020-06-30 17:20:20 +01:00
James A. Petts
690442555c Fix typo 2020-06-30 16:58:20 +01:00
igoroctaviano
d94bc2d5a2 Merge branch 'feat/v2-main' of github.com:OHIF/Viewers into feat/ohif-179 2020-06-30 12:43:19 -03:00
James A. Petts
ef8683b8ea Remove console.log 2020-06-30 16:36:09 +01:00
James A. Petts
4ec07dba0b Merge in and fix after OHIF-197 and OHIF-198 2020-06-30 16:35:32 +01:00
igoroctaviano
1bfb62d26d Add messages to sr pacs 2020-06-30 12:33:38 -03:00
James A. Petts
80a86d1251 Merge remote-tracking branch 'upstream/feat/v2-main' into OHIF-190 2020-06-30 16:28:05 +01:00
James Petts
2c11609c55
OHIF-198 - Jump to thumbnail when a new displaySet is added (#1834)
* Viewport letter only in multi-viewport layout.

* If SliceThickness not available print N/A

* Create displaySet in local session on SR generation.

* Jump to thumbnail when a new displaySet is added with the madeInClient property.

* Check if scrollIntoView exists.
2020-06-30 16:27:35 +01:00
James A. Petts
b99488ad1b Remove debugger statements. 2020-06-30 16:09:54 +01:00
James A. Petts
eaeae515a3 Complete rehydration. 2020-06-30 16:08:44 +01:00
James Petts
eb8f3a63f2
OHIF-197 (#1833)
* Viewport letter only in multi-viewport layout.

* If SliceThickness not available print N/A

* Create displaySet in local session on SR generation.

* remove empty line

* remove console log

* Give storeMeasurements an onSuccess handler instead of always creating dataSets.

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-06-30 15:10:27 +01:00
Danny Brown
d5d219c271
Merge pull request #1831 from OHIF/feat/ohif-203
OHIF-203: Add new viewport overlay
2020-06-30 08:41:20 -04:00
igoroctaviano
364f2db1dc Remove servicesmanager 2020-06-30 09:32:11 -03:00
James Petts
d266b944c2
[OHIF-192] - Viewport letter only if using multiple viewport layout. (#1822)
* Viewport letter only in multi-viewport layout.

* If SliceThickness not available print N/A
2020-06-30 11:41:50 +01:00
James A. Petts
baedf243bc WIP OHIF-190 rehydrate. 2020-06-30 10:28:46 +01:00
Danny Brown
050b260a58
Merge pull request #1832 from dannyrb/dannyrb/fix/viewport-notification-workflow
Update measurement tracking workflow to match requirements
2020-06-29 23:31:38 -04:00
dannyrb
a0b0f365dd Handle for interaction outside of the ViewportDialog (default to cancel) 2020-06-29 23:29:40 -04:00
dannyrb
9403a091d9 Update measurement tracking workflow to match requirements 2020-06-29 22:30:39 -04:00
igoroctaviano
9e2ed50e79 add new overlay 2020-06-29 18:05:52 -03:00
Danny Brown
4c7e3f95fe
Merge pull request #1829 from OHIF/feat/ohif-165-fix
OHIF-165: Fix broken solution after recent merge
2020-06-29 15:17:44 -04:00
igoroctaviano
a753e0509d Merge branch 'feat/v2-main' of github.com:OHIF/Viewers into feat/ohif-165-fix 2020-06-29 16:13:01 -03:00
igoroctaviano
38a92ae18d Fix broken solution 2020-06-29 16:12:42 -03:00
Danny Brown
6db780842e
Merge pull request #1827 from OHIF/feat/ohif-127-196
OHIF-127-196-191: Hotkeys config and defaults
2020-06-29 15:09:06 -04:00
igoroctaviano
fc9a0941db Fix problem with focus 2020-06-29 15:30:22 -03:00
igoroctaviano
686acabd9f Wire presets 2020-06-29 14:53:49 -03:00
James A. Petts
14005d61f3 WIP rehydration. 2020-06-29 18:22:19 +01:00
igoroctaviano
f96c1f6648 CR Updates 2020-06-29 13:58:36 -03:00
Danny Brown
0594525301
Merge pull request #1823 from OHIF/fix/minor-defects
fix: sort number of instances | format date in study panel
2020-06-29 12:45:56 -04:00
igoroctaviano
c8052e0e0a Add context to hotkeys manager 2020-06-29 11:57:16 -03:00
igoroctaviano
db795f3cb0 Add hotkeys config for modes and defaults to core 2020-06-29 11:53:46 -03:00
Danny Brown
aa402183f4
Merge pull request #1824 from OHIF/feat/ohif-125
OHIF-125: Error boundaries
2020-06-26 16:47:52 -04:00
Danny Brown
baf6093fca
Merge pull request #1825 from OHIF/feat/ohif-195
OHIF-195: Update "More Menu" toolbar icons to use previous versions
2020-06-26 16:43:45 -04:00
igoroctaviano
7782d3d200 Fix broken merge 2020-06-26 17:07:49 -03:00
igoroctaviano
b18e5099d9 Add more icons 2020-06-26 17:03:17 -03:00
igoroctaviano
550564d60f Add more icons 2020-06-26 16:59:47 -03:00
igoroctaviano
9bd1ce734c Add more icons 2020-06-26 16:56:19 -03:00
igoroctaviano
f5b78536d2 Add old icons 2020-06-26 16:49:34 -03:00
Rodrigo Antinarelli
9145215596 move formatDate to ohif/core 2020-06-26 16:17:25 -03:00
Danny Brown
a59722a182
Merge pull request #1814 from dannyrb/dannyrb/ohif-154/restore-command-functionality-for-toolbar
[OHIF-154] Dannyrb/ohif 154/restore command functionality for toolbar
2020-06-26 14:27:25 -04:00
Danny Brown
1931d45450
Merge branch 'feat/v2-main' into dannyrb/ohif-154/restore-command-functionality-for-toolbar 2020-06-26 14:26:35 -04:00
dannyrb
33a2df6ad9 Update all cornerstone commands 2020-06-26 14:22:45 -04:00
dannyrb
8339154820 Clean up old comments 2020-06-26 14:17:45 -04:00
dannyrb
c6ec439331 Make sure primary cornerstone extension has references to enabled elements 2020-06-26 14:14:25 -04:00
dannyrb
8607659501 Test that we can access activeViewportIndex from extension 2020-06-26 13:51:27 -04:00
igoroctaviano
b34a9880f7 Use modal as default fallback 2020-06-26 14:47:18 -03:00
Rodrigo Antinarelli
a5170076db fix date format 2020-06-26 14:29:25 -03:00
dannyrb
aa4e88c2fa Set initial state for provider; fix useReducer usage 2020-06-26 13:29:10 -04:00
dannyrb
077143bd4a Update ViewportGridService interface 2020-06-26 13:28:50 -04:00
dannyrb
3993c12701 Update dependents to use new exposed service 2020-06-26 13:28:30 -04:00
Igor Octaviano
2c0f7bb9f9
Merge pull request #1803 from OHIF/feat/ui-v2-Dropdown
Feat/ui v2 dropdown
2020-06-26 14:10:14 -03:00
Rodrigo Antinarelli
cdc88ff552 fix learn more 2020-06-26 12:59:06 -03:00
Rodrigo Antinarelli
c93faf628b nuke inputnumber 2020-06-26 12:44:30 -03:00
Rodrigo Antinarelli
0d53346d61 Merge branch 'feat/v2-main' of https://github.com/OHIF/Viewers into feat/ui-v2-Dropdown 2020-06-26 12:42:56 -03:00
igoroctaviano
a197b887fb Merge branch 'feat/v2-main' of github.com:OHIF/Viewers into feat/ohif-125 2020-06-26 12:38:18 -03:00
igoroctaviano
34afb12c6f Add proptypes 2020-06-26 12:38:10 -03:00
Rodrigo Antinarelli
edd4a4118c
feat: Modal + ViewportDownloadForm (#1799)
* feat: Modal + ViewportDownloadForm

* styles for image preview box

* modal update & close handler

* open modal for Learn More (search info)

* change modal default alignment

* Update platform/ui/src/components/InputNumber/InputNumber.mdx

* nuke inputNumber and use inputText with refactor

* make input more reusable

* revert inputText "number" stuff

* replace inputText to Input

* fix input spacing + label

* fix modal overlay classes

* fix inline styles

* fix onclick learn more

* fix close icon

* revert transition

* remove inline styles

* remove unecessary stuff
2020-06-26 16:34:43 +01:00
Rodrigo Antinarelli
d220dd2489 create dropdown documentation 2020-06-26 12:34:10 -03:00
Rodrigo Antinarelli
ec48801be7 fix: instances should not be able to sort 2020-06-26 12:20:18 -03:00
Igor Octaviano
554b9a0db4
OHIF-174: Patient Info Icon should be clickable and show the correct details (#1816)
* Update patient info to be clickable and update fields in viewers

* Add spacing

* Remove log

* round number

* Add default
2020-06-26 16:05:29 +01:00
Igor Octaviano
5180eb127d
OHIF-163: Patient Name is displayed in correct format "Last Name, First Name" (#1820)
* Add util to formatpn

* Format patient name in patient information tab
2020-06-26 15:11:00 +01:00
Igor Octaviano
101efa4cf4
Add simple loading and default state to datasourcewrapper (#1815) 2020-06-26 15:08:16 +01:00
Igor Octaviano
1d8f5cfc42
Viewport grid load default as 1x1 and load first image of series by default (#1817) 2020-06-26 14:40:03 +01:00
igoroctaviano
e9696894a9 Add error boundary 2020-06-26 10:26:50 -03:00
James Petts
8f05cf73c7
Add authoring information to exported DICOMs using the DICOMWeb DataSource (#1819)
* OHIF-177 JSDocs.

* Add proxy for activeDataSource to extensionManager.

* Add app authoring information.
2020-06-26 10:24:19 +01:00
James Petts
81a764a78f
[OHIF-177] - JSDocs (#1818)
* OHIF-177 JSDocs.

* Add proxy for activeDataSource to extensionManager.
2020-06-26 10:01:13 +01:00
Rodrigo Antinarelli
eeeaa8d1da fix tailwind class 2020-06-25 18:45:28 -03:00
dannyrb
dfbf32fe43 Add "todo" notes for next work day 2020-06-25 17:02:10 -04:00
dannyrb
6e873cc92a Expose ViewportGridService API methods to extensions 2020-06-25 17:00:42 -04:00
Danny Brown
1a065855f2
Merge pull request #1811 from OHIF/feat/OHIF-177
[OHIF-177] - First pass at SR STOW with Arrow Annotate, Ellipse, Length and Bidirectional.
2020-06-25 16:24:46 -04:00
Danny Brown
0264e5998d
Merge branch 'feat/v2-main' into feat/OHIF-177 2020-06-25 16:17:50 -04:00
Danny Brown
f615971477
Merge pull request #1806 from OHIF/feat/ohif-151
OHIF-151: Replace the "..." icon in more menu with active tool in menu.
2020-06-25 16:12:50 -04:00
igoroctaviano
6eb474be88 Add active state 2020-06-25 16:51:48 -03:00
igoroctaviano
52521c5b56 Add active state 2020-06-25 16:49:46 -03:00
igoroctaviano
5d89460326 Merge branch 'feat/v2-main' of github.com:OHIF/Viewers into feat/ohif-151 2020-06-25 16:13:47 -03:00
Danny Brown
399fa89b1f
Merge pull request #1812 from OHIF/feat/ohif-152
OHIF-152: Create window level dropdown menu
2020-06-25 15:06:31 -04:00
Danny Brown
9c3159cc15
more descriptive comment for isDisabled prop 2020-06-25 15:06:14 -04:00
igoroctaviano
3f0619848b Update code to avoid intercepting onclick 2020-06-25 16:03:06 -03:00
Rodrigo Antinarelli
b0935e4fb6 fix icon size 2020-06-25 15:42:36 -03:00
Danny Brown
11932f460e
Merge pull request #1813 from OHIF/feat/v2-main
catch-up
2020-06-25 14:39:45 -04:00
igoroctaviano
44297af965 Create window level dropdown menu 2020-06-25 15:27:42 -03:00
Rodrigo Antinarelli
3dc4cf6cea useCallback to avoid redeclaring functions 2020-06-25 14:08:09 -03:00
Rodrigo Antinarelli
547e11d877 minor fix class order 2020-06-25 13:52:40 -03:00
Danny Brown
0ae95adf34
Remove console log 2020-06-25 12:49:05 -04:00
Danny Brown
bb26b86969
remove console log 2020-06-25 12:48:42 -04:00
Rodrigo Antinarelli
e70c7a455a split dropdown item into a separated render component 2020-06-25 13:46:24 -03:00
James Petts
6aac69e1ba
OHIF-176: v2 - Render non-tracked measurements as a dashed lines. (#1805)
* Render non-tracked measurements as a dashed line.

* bump CST version.

* Update extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.js

remove tracked series console log

* Remove empty console log

* Remove debugger

* Remove debugger

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-06-25 17:46:17 +01:00
James A. Petts
0fe7083c51 Rebase on master 2020-06-25 17:24:57 +01:00
Danny Brown
f0739b65e8
Merge pull request #1810 from dannyrb/fix/netlify-deploy-preview
fix: add missing `supportsFuzzyMatching` and `defaultDataSourceName` keys to appConfig [OHIF-180]
2020-06-25 12:22:29 -04:00
James A. Petts
74c1462271 Working local download, STOW to PACS an view in SR Viewport. 2020-06-25 17:21:03 +01:00
dannyrb
58f10e9b09 fix: add missing supportsFuzzyMatching and defaultDataSourceName keys to appConfig 2020-06-25 12:18:23 -04:00
James Petts
c01466762d
WIP Measurements service. (#1808) 2020-06-25 17:13:31 +01:00
James A. Petts
7b7b63de93 WIP Measurements service. 2020-06-25 11:15:33 +01:00
igoroctaviano
911f93d378 Update toolbar service and add active icon in nested button 2020-06-24 12:11:54 -03:00
Rodrigo Antinarelli
a19c1acd7b fix dropdown title 2020-06-24 01:27:02 -03:00
Rodrigo Antinarelli
db0ce2f6f7 minor fixes 2020-06-24 01:16:56 -03:00
Rodrigo Antinarelli
987dae9b2d fix dropdown 2020-06-24 01:16:39 -03:00
Rodrigo Antinarelli
6ce531a6d2 fix icon dropdown 2020-06-23 23:40:45 -03:00
Rodrigo Antinarelli
9745f06c4c fix eventListener 2020-06-23 23:40:35 -03:00
Rodrigo Antinarelli
9dbbc709f4 remove fragment 2020-06-23 23:22:57 -03:00
Rodrigo Antinarelli
8b2c68d1bf add i18n to header 2020-06-23 23:05:45 -03:00
Rodrigo Antinarelli
ef0eb53d25 add i18n provider in the viewer 2020-06-23 23:05:37 -03:00
Erik Ziegler
67508f6667 fix: Make docker build properly 2020-06-23 12:36:43 +02:00
Rodrigo Antinarelli
a7ce1ce070 Merge branch 'feat/Modal-ViewportDownloadForm' of https://github.com/OHIF/Viewers into feat/ui-v2-Dropdown 2020-06-23 00:15:55 -03:00
Rodrigo Antinarelli
430f9916ee change modal default alignment 2020-06-23 00:14:55 -03:00
Rodrigo Antinarelli
1441062d95 using dropdown and opening modal for preferences 2020-06-23 00:10:58 -03:00
Rodrigo Antinarelli
70cf31b449 fix navbar height 2020-06-23 00:10:44 -03:00
Rodrigo Antinarelli
aecd3d9071 change modal default alignment 2020-06-23 00:09:49 -03:00
Rodrigo Antinarelli
487bcf043b feat: Dropdown component 2020-06-23 00:09:31 -03:00
Rodrigo Antinarelli
92a2071a04 open modal for Learn More (search info) 2020-06-22 22:38:52 -03:00
Rodrigo Antinarelli
248639777e modal update & close handler 2020-06-22 22:38:39 -03:00
Rodrigo Antinarelli
c89f3682cc styles for image preview box 2020-06-22 20:14:59 -03:00
Rodrigo Antinarelli
a538824cc7 feat: Modal + ViewportDownloadForm 2020-06-19 20:59:09 -03:00
dannyrb
4ec357bec4 Commands running on at least first viewport 2020-06-17 08:50:11 -04:00
dannyrb
16aa777bda Merge branch 'feat/ui-v2-rebase-services' of github.com:OHIF/Viewers into feat/ui-v2-rebase-services 2020-06-17 08:48:38 -04:00
James A. Petts
084697687d Fix reactivity of SR Viewport when the user scrolls away and then jumps to a measurement on the same slice as the currently active measurement. 2020-06-17 08:45:40 +01:00
James A. Petts
73bb4de140 SR viewport to cornerstone viewport consistency updates. 2020-06-17 08:25:10 +01:00
dannyrb
10484fceec Duplicate toolbar buttons for "example" mode and add nested menu buttons 2020-06-16 23:57:38 -04:00
dannyrb
0f2bae008d Expose probe tool 2020-06-16 23:56:56 -04:00
dannyrb
0717893e56 Force descriptions to wrap if they would overflow container (thumbnails) 2020-06-16 23:15:40 -04:00
dannyrb
a8954befee Fix unsubscribe bug in layout template 2020-06-16 23:02:46 -04:00
dannyrb
be6a04684b Don't try and "getImageSrc" for datasets without imageIds (DICOM SR) 2020-06-16 23:02:16 -04:00
dannyrb
86c758e2f9 Remove console log 2020-06-16 22:49:13 -04:00
dannyrb
5eb06d0916 Wire up mode buttons to mode routes; Expose displayName; 2020-06-16 22:06:54 -04:00
dannyrb
c3ecbadbc2 Make sure WorkList has access to AppConfig 2020-06-16 10:20:03 -04:00
dannyrb
6e65e7eaf5 Conditionally show left/right and userinfo for active viewport 2020-06-16 00:56:54 -04:00
dannyrb
27e62949ce Allow null content for ToolTip content 2020-06-16 00:44:33 -04:00
dannyrb
c264b32e7d Swap rows/cols 2020-06-16 00:44:19 -04:00
dannyrb
4adea1b49a Map tracking info 2020-06-16 00:43:51 -04:00
dannyrb
33cee9e898 fix null dropdowncontent 2020-06-16 00:43:16 -04:00
dannyrb
f2b77d2a4a fix missing import 2020-06-16 00:43:04 -04:00
dannyrb
0842eb9a8c Delete SR Viewport example mode 2020-06-16 00:26:12 -04:00
dannyrb
7e856c7605 Remove debugger statements 2020-06-16 00:01:36 -04:00
dannyrb
140c562519 fix secondary toolbar styling 2020-06-16 00:00:47 -04:00
dannyrb
570424e3e9 Add support for LayoutSelector 2020-06-15 23:38:48 -04:00
dannyrb
3a15702907 Have content assume it's jsx/node 2020-06-15 23:37:04 -04:00
James A. Petts
00f0ae4bbc By default other tool state not loaded into the viewport. (set disabled) 2020-06-15 12:09:48 +01:00
James A. Petts
e7501933dd Pull in master 2020-06-15 09:23:35 +01:00
dannyrb
9146a9ee32 Create new ToolbarButton type for Layout Selector; wire up custom UI; prep for viewportGridService usage 2020-06-15 00:51:36 -04:00
dannyrb
83eb24337c Syntax error 2020-06-14 23:45:55 -04:00
dannyrb
acc2537140 New @ohif/ui does not have ViewportDownloadForm; stub Hello World for time being 2020-06-14 23:44:03 -04:00
dannyrb
2d278be3fd Remove storeContexts for capture modal form 2020-06-14 23:43:31 -04:00
dannyrb
e104fb9fbd Clear showDownloadViewport command errors 2020-06-14 23:43:09 -04:00
dannyrb
8c1a844558 Nested toolbar w/ "sticky" when clicked 2020-06-14 23:42:44 -04:00
dannyrb
217d848f9f Do not expose cornerstone's toolbarModule 2020-06-14 21:58:37 -04:00
dannyrb
3cec88b552 remove "Toolbar" and ViewportToolbar from @ohif/ui
Unecessary wrappers for displaying ToolbarButtons
2020-06-14 21:57:45 -04:00
dannyrb
38203c9b31 Update example extension 2020-06-14 21:48:56 -04:00
dannyrb
83e191b850 Update toolbar service to use button types, update longitudinal flow to use new service api 2020-06-14 21:20:32 -04:00
dannyrb
f70392a52a Change toolbarModule scheme and extensionManager 2020-06-14 21:18:29 -04:00
dannyrb
ae107f4d3b Remove connected components roped in from a rebase 2020-06-14 21:14:31 -04:00
James A. Petts
c5e6e97980 Merge in feat/ui-v2-rebase-services 2020-06-11 17:26:38 +01:00
James A. Petts
2fc171e297 Enable non-thumbnail entries in thumbnail list. 2020-06-10 14:10:00 +01:00
James A. Petts
6f6fea973d WIP 2020-06-10 13:33:56 +01:00
James A. Petts
c8b3e130d0 WIP 2020-06-10 09:09:33 +01:00
dannyrb
fab7334696 Remove dead code; clean-up comments 2020-06-09 13:39:17 -04:00
dannyrb
3b81ebcc96 Clear studySummary state when no study is set 2020-06-09 13:38:27 -04:00
dannyrb
47f9e1391a update measurements panel when measurements change (debounced) 2020-06-09 13:38:09 -04:00
dannyrb
f3e783b63e wire up measurement service "removed" event w/ cornerstone ext 2020-06-09 13:37:26 -04:00
dannyrb
7a67b28c3f Fix sidepanel measurement calculation 2020-06-09 11:18:55 -04:00
dannyrb
dc5fb8b585 Make sure ViewportDialogs are full-width 2020-06-08 21:47:15 -04:00
dannyrb
5fde65a2c1 hide overlays 2020-06-08 21:47:01 -04:00
dannyrb
7700069e7c filter and update measurements when trackedMeasurements updates 2020-06-08 21:46:52 -04:00
dannyrb
10cbe9e1d4 clean up dead code in TrackedMeasurementsContext 2020-06-08 21:46:05 -04:00
dannyrb
3b7560a282 ability to "untrack" a series from thumbnail list 2020-06-07 12:31:18 -04:00
dannyrb
ffbf7b4a76 bubble up thumbnail "untrack" clicks to parent "StudyBrowser" component w/ prop drilling 2020-06-07 12:08:50 -04:00
dannyrb
0573cb18e6 Add support for SET_LAYOUT action on viewportGrid reducer 2020-06-07 11:48:13 -04:00
dannyrb
490eefdae0 Use viewportIndex from transition event to set viewportDialog placement 2020-06-07 11:25:11 -04:00
dannyrb
47b068afe4 Only add measurements after initial completion from csTools to MeasurementService 2020-06-07 11:23:47 -04:00
dannyrb
dcfb57ea16 remove console log 2020-06-07 11:17:39 -04:00
dannyrb
fd3b7e7ee7 set interaction for viewportPane on mouse down 2020-06-07 11:17:28 -04:00
dannyrb
bd60b66977 Custom message per prompt type 2020-06-06 23:40:02 -04:00
dannyrb
2d903d731f simplify stateMachine 2020-06-06 23:35:12 -04:00
dannyrb
00f8d56a4e get ViewportDialog to display as a part of machine transition 2020-06-05 15:19:09 -04:00
James A. Petts
83497795ca Finish render tool other than rotated ellipse and clean up. 2020-06-05 17:59:07 +01:00
James A. Petts
f4470c9625 Generate render tool. 2020-06-05 16:36:11 +01:00
James A. Petts
7bd041a02c WIP 2020-06-05 09:19:43 +01:00
James A. Petts
e9db84c2c2 WIP 2020-06-04 19:39:32 +01:00
dannyrb
a4fc5e21b2 clean up study summary initial values and transitions 2020-06-04 12:49:09 -04:00
dannyrb
66e8f7a592 bump docz version 2020-06-04 12:37:05 -04:00
dannyrb
53407899e2 Set studySummary data 2020-06-04 12:18:57 -04:00
dannyrb
17b6e3ca6c truncate and ellipse studysummary text 2020-06-04 12:18:44 -04:00
dannyrb
95249928a8 Replace measurementsPanel w/ a format that reduces nesting 2020-06-04 11:28:10 -04:00
James A. Petts
d39d103552 SR Viewport WIP 2020-06-04 13:26:06 +01:00
James A. Petts
99bf0e07b0 WIP SR Viewport. 2020-06-04 10:34:43 +01:00
dannyrb
98497f666c begin mapping measurement data to measurements table 2020-06-03 16:02:58 -04:00
dannyrb
9dd04122af pull in tracked measurements panel 2020-06-03 15:20:09 -04:00
dannyrb
74edfb0913 fix incorrect react-dnd backend 2020-06-03 15:08:19 -04:00
dannyrb
70c39b9ad4 temporarily remove p10 loader 2020-06-03 14:30:29 -04:00
dannyrb
ecb458e37c bump yarn lock after gatsby version updates 2020-06-03 14:07:24 -04:00
dannyrb
5e722fc685 bump netlify node version 2020-06-03 13:51:45 -04:00
James A. Petts
558ab00c23 WIP SR viewport. 2020-06-03 18:12:13 +01:00
dannyrb
87f3921492 update yarn lock 2020-06-03 12:41:38 -04:00
dannyrb
8674e676b7 viewportLabels for panel 2020-05-28 00:02:05 -04:00
dannyrb
b444836469 Set isTracked in actionbar 2020-05-27 23:16:41 -04:00
dannyrb
05a0bdc55b OHIFCornerstoneComponent from class component to function component 2020-05-27 23:09:06 -04:00
dannyrb
1c45d643ac missing useEffect unsubscribe 2020-05-27 22:21:35 -04:00
dannyrb
069fc3fa74 prettier fixes 2020-05-27 22:21:25 -04:00
dannyrb
7a38b0048c Simplify cornerstone measurement subscriptions (short-term) 2020-05-27 22:21:00 -04:00
dannyrb
df95db6d15 Add referenceStudyUID to measurement schema 2020-05-27 22:20:40 -04:00
dannyrb
0a4af79b44 use measurement service to trigger state machine transitions 2020-05-27 22:20:17 -04:00
dannyrb
870489be1d Test state machine hook 2020-05-27 21:25:44 -04:00
dannyrb
c3dd2608b2 wire up some ActionBar data; default grid to 2x2 2020-05-27 08:56:52 -04:00
dannyrb
765099f912 Flex column ordering for viewport panes 2020-05-27 08:32:39 -04:00
dannyrb
8117857a89 default to untracked 2020-05-27 08:32:27 -04:00
dannyrb
03c4136bac Note on how to clean up styling 2020-05-27 08:26:01 -04:00
dannyrb
e3e8bbd679 Decrease viewportActionBar series description max-width 2020-05-27 08:22:18 -04:00
dannyrb
11a4d4227d Pull in correct context; add xstate package 2020-05-27 08:21:58 -04:00
dannyrb
9e893bbf90 Add ActionBar to UI (dummy) 2020-05-27 08:21:23 -04:00
dannyrb
e1c7a76025 Rename files to clarify they're "tracking" variants (simplify ide search) 2020-05-27 08:20:54 -04:00
dannyrb
e748eb1974 Beginning of TrackedMesurementContext 2020-05-27 08:20:30 -04:00
dannyrb
d510cc8ad2 casing change 2020-05-26 10:50:59 -04:00
dannyrb
591e21e287 casing change 2020-05-26 10:50:03 -04:00
dannyrb
38e60e297b longitudinal mode to use "tracked" thumbnails 2020-05-26 10:39:40 -04:00
dannyrb
d557acbb40 Support for additional "tracking" mode 2020-05-26 09:03:58 -04:00
dannyrb
fae21bed9c Allow empty slots for rightPanels and leftPanels 2020-05-26 09:02:47 -04:00
dannyrb
60c4a36cc5 Remove unused connectedCornerstoneViewport; guidance notes on how to migrate 2020-05-26 09:02:30 -04:00
dannyrb
307b0a9ac1 Simplify viewportComponent map 2020-05-25 21:12:37 -04:00
dannyrb
8573a4de13 onInteraction for panes wrapping viewports 2020-05-25 20:55:51 -04:00
dannyrb
b396cc8d3f set the displaySet for the dropped thumbnail/viewport target 2020-05-25 09:56:05 -04:00
dannyrb
ff371ece8d prefer onInteraction over more granular events for changing activeViewport 2020-05-25 08:43:04 -04:00
dannyrb
9b75d95e48 action on ViewportPanes for setting the active viewport 2020-05-24 22:34:01 -04:00
dannyrb
30caec0043 import fix 2020-05-23 23:58:50 -04:00
dannyrb
7487cbb28c Hoist ViewportGrid context so UI Services can access/update it 2020-05-23 23:57:14 -04:00
dannyrb
db76eac047 wire up UI Services 2020-05-23 23:38:20 -04:00
dannyrb
c9a4ab13ef empty viewport, prevent duplicate series meta from add, protect broadcast events when no data has changed 2020-05-23 22:15:21 -04:00
dannyrb
692f4c1ca5 remove uneccessary tabData check 2020-05-23 20:49:12 -04:00
dannyrb
3a78d313ac remove dead code 2020-05-23 20:48:09 -04:00
dannyrb
40a62b1329 hoist state for expanded studies; allow multiple open 2020-05-22 15:47:38 -04:00
dannyrb
7c1dcb53c2 hoist activeTab state 2020-05-22 15:33:07 -04:00
dannyrb
a41a455237 user-select, none for study items 2020-05-22 15:14:16 -04:00
dannyrb
4a390bfb66 fix thumbnail persistence 2020-05-22 14:31:51 -04:00
dannyrb
23a94251fc map is not reactive 2020-05-21 20:51:48 -04:00
dannyrb
f87d18936e basic pub/sub refresh for tabs from displaysets from dicommetadata 2020-05-21 20:34:53 -04:00
dannyrb
1892ec2a2a fix incorrect argument to retrieve studies 2020-05-21 20:33:08 -04:00
dannyrb
715377c565 Move files around to confuse James and Erik 2020-05-21 16:24:35 -04:00
dannyrb
b5070dd518 Merge branch 'feat/ui-v2-rebase-services' of github.com:OHIF/Viewers into feat/ui-v2-rebase-services
# Conflicts:
#	platform/viewer/src/routes/Mode/Mode.jsx
2020-05-20 21:08:49 -04:00
dannyrb
a323157c62 capture changes 2020-05-20 21:07:25 -04:00
dannyrb
64f9c4a387 add alias for state 2020-05-20 14:42:22 -04:00
James A. Petts
a3e1c216c4 Working cornerstone tools buttons, needs UI updates + onClicks wrapped in toolbarService 2020-05-20 17:49:17 +01:00
dannyrb
913f9589e5 fix config; update yarn.lock 2020-05-20 09:06:50 -04:00
dannyrb
d41686c4ad Update netlify config to new format 2020-05-20 08:57:07 -04:00
James A. Petts
52d1b6276d Add in checks. 2020-05-20 12:59:10 +01:00
dannyrb
6bbe206a45 basic drop to set displaySet 2020-05-20 01:26:44 -04:00
dannyrb
6baeaa9619 Assume pattern for specifying one or more studyInstanceUids 2020-05-20 00:49:38 -04:00
dannyrb
3a3b7261df expose new webpack aliases for hooks and root 2020-05-20 00:48:42 -04:00
dannyrb
1cd6b6881a upgrade react-router and react-router-dom to gain access to new hooks 2020-05-19 23:47:43 -04:00
dannyrb
c3373357ee dropped item logs displaySetInstanceUID 2020-05-19 23:34:56 -04:00
dannyrb
591da12536 Drag and drop w/ dragSource + dragTarget w/o errors 2020-05-19 23:28:41 -04:00
dannyrb
1333c2b89d Re-enable draggable thumbs 2020-05-19 23:15:33 -04:00
dannyrb
1c33914e27 Display regular thumbnail; not tracked variant 2020-05-19 23:15:13 -04:00
James A. Petts
d83c868cdd Working, needs optimisation. 2020-05-19 18:22:38 +01:00
James A. Petts
940e745d8d WIP bring back thumbnails. 2020-05-19 15:02:03 +01:00
James A. Petts
cf0e88bd0b Rebuild study browser reactivity. 2020-05-19 14:56:25 +01:00
James A. Petts
f7ae544716 WIP, wrap command manager controls so we can pass these to the UI component. 2020-05-19 13:01:39 +01:00
Erik Ziegler
d54bd5738e WIP reorganization for study browser (again) 2020-05-19 13:55:38 +02:00
James A. Petts
156b9cfd09 Pull in upstream. 2020-05-19 10:04:42 +01:00
James A. Petts
6a3e0db53e ToolBarService 2020-05-19 10:01:44 +01:00
Erik Ziegler
b65a91129e Still broken, but app runs 2020-05-19 10:59:50 +02:00
James A. Petts
aec30e0db1 Update DisplaySetService 2020-05-19 09:30:16 +01:00
Erik Ziegler
2b41d64e85 remove debuggers 2020-05-19 09:15:36 +02:00
Erik Ziegler
66c7bd7492 Fix viewports 2020-05-19 09:11:16 +02:00
Erik Ziegler
755e6b5f77 wip: need to fix StackManager 2020-05-18 23:40:28 +02:00
Erik Ziegler
ba5d465aa9 Temporarily remove drag from thumbnails 2020-05-18 23:27:43 +02:00
Erik Ziegler
63cf079288 Make thumbnails display 2020-05-18 23:21:41 +02:00
dannyrb
c55d069e32 refactor how we slowly build our studies array 2020-05-18 16:20:39 -04:00
dannyrb
351e0f76d6 start cleaning up panels 2020-05-18 15:05:49 -04:00
dannyrb
d0c3fb6db0 fix merge conflict 2020-05-18 14:34:44 -04:00
Erik Ziegler
979242c819 wip 2020-05-18 20:05:26 +02:00
Erik Ziegler
1bb204b9a5 Stop using children 2020-05-18 19:49:32 +02:00
Erik Ziegler
488bb5d266 Fixed! 2020-05-18 18:21:43 +02:00
Erik Ziegler
4e683ecdde still broken 2020-05-18 18:11:24 +02:00
James A. Petts
7a8418f64b WIP DisplaySetService 2020-05-18 16:21:57 +01:00
James A. Petts
649216fde4 Co-authored-by: Danny Brown <danny.ri.brown@gmail.com> 2020-05-18 14:46:05 +01:00
dannyrb
7bcfaf02c0 Small notes and typdef 2020-05-17 23:40:09 -04:00
dannyrb
3880b874ab Reorganize routes folder 2020-05-17 23:27:31 -04:00
dannyrb
ea50ade126 alias imports for top level viewer src folders 2020-05-17 23:27:04 -04:00
dannyrb
3a2c8ef1f7 Remove unused file 2020-05-17 23:26:35 -04:00
dannyrb
70ad940941 Using appContext in DataSourceWrapper and createRoutes 2020-05-17 22:18:25 -04:00
dannyrb
c2853f719a remove unused files 2020-05-17 22:17:45 -04:00
dannyrb
a99badd011 Centralize route generation to a single place 2020-05-17 21:42:38 -04:00
dannyrb
eecdb62dda Move context to a "state" folder 2020-05-17 21:41:57 -04:00
dannyrb
96bf56b8c1 Remove unused files 2020-05-17 21:41:26 -04:00
Erik Ziegler
10930cda68 Avoid re-renders in study browser and entire page 2020-05-16 15:08:06 +02:00
James A. Petts
4fc3169fed display viewport. 2020-05-15 18:07:21 +01:00
Erik Ziegler
7c0d93f011 Try to do study panel the way react wants 2020-05-15 15:56:57 +02:00
Erik Ziegler
44733b987e Thumbnails sort of show up 2020-05-15 14:53:31 +02:00
Erik Ziegler
304caba873 Start adding measurement table 2020-05-15 14:31:18 +02:00
Erik Ziegler
264a72b566 Missing file 2020-05-15 14:30:47 +02:00
Erik Ziegler
f3f50d11fe Fixes after rebasing 2020-05-15 14:29:27 +02:00
Erik Ziegler
70b7158c9b StudyBrowser almost works 2020-05-15 13:09:46 +01:00
Erik Ziegler
ec2df02e83 Improve study browser 2020-05-15 13:06:23 +01:00
dannyrb
6044190ab1 Fine tune grid spacing 2020-05-15 13:05:56 +01:00
dannyrb
00347d3ecb Nuke "SecondaryToolbar" which is really just a Toolbar variant 2020-05-15 13:05:56 +01:00
dannyrb
ded1431fab Cleaner body styles on enter/exit for LayoutTemplate 2020-05-15 13:05:56 +01:00
dannyrb
c5033768f2 Update Viewer to use UI components instead of local 2020-05-15 13:05:56 +01:00
dannyrb
6fdf35b370 Start to whittle away at ViewportGrid comment 2020-05-15 13:05:55 +01:00
dannyrb
41c0b38bf7 expose className on ViewportPane 2020-05-15 13:05:55 +01:00
dannyrb
66e3aea773 update Viewer example to use updated components 2020-05-15 13:05:55 +01:00
dannyrb
50d0144e78 update docz examples to match new component api 2020-05-15 13:05:55 +01:00
dannyrb
d7cdc1c3ba Rename dndContext --> dndProvider 2020-05-15 13:05:55 +01:00
dannyrb
599204176c Add drag and drop provider 2020-05-15 13:05:55 +01:00
dannyrb
fe57becb2c Pull @ohif/ui ViewportPane into separate component and expose 2020-05-15 13:05:54 +01:00
dannyrb
f319092b84 Cleanup @ohif/ui ViewportGrid API 2020-05-15 13:05:52 +01:00
dannyrb
26450644ab add react-dnd 2020-05-15 13:04:54 +01:00
dannyrb
518ff4d6b5 Push grid, pane, and provider 2020-05-15 13:04:54 +01:00
dannyrb
70ce476c32 Create and use ViewportGrid component 2020-05-15 13:04:54 +01:00
dannyrb
ba152f082b Split ViewportLayout into parts and clean-up 2020-05-15 13:04:54 +01:00
Erik Ziegler
0c74a9bbcd Fixes for display sets, prep for tracking / grid stuff 2020-05-15 13:04:54 +01:00
Erik Ziegler
d131489aa3 Start adding StudyBrowser 2020-05-15 13:04:53 +01:00
James A. Petts
3b5764aea7 Rebase WADO + toolbar + displayset stuff on master 2020-05-15 13:04:53 +01:00
James A. Petts
b8a4ac231d something WIP 2020-05-15 13:04:53 +01:00
James A. Petts
4b9a1ee9d1 Remove all the debugging. 2020-05-15 13:04:53 +01:00
James A. Petts
07ca72d0df Added other required definitions. 2020-05-15 13:04:51 +01:00
James A. Petts
41c508b2da Add layout tools based on mode. 2020-05-15 13:04:09 +01:00
James A. Petts
c23c1e8db6 Add toolbar layout to context. 2020-05-15 13:04:09 +01:00
James A. Petts
c42aa37d7f Update extension manager to ingest each module type. Add toolbar Manager. 2020-05-15 13:04:06 +01:00
James A. Petts
a8340b9b69 WIP 2020-05-15 13:02:38 +01:00
James A. Petts
289d3f5703 Build WADO logic to fetch + build displaysets + generate imageIds based on prefs. 2020-05-15 13:02:04 +01:00
James A. Petts
d5c83bf596 WIP 2020-05-15 13:02:04 +01:00
dannyrb
b5cd7bb0b7 Bind series data 2020-05-15 13:02:03 +01:00
dannyrb
73c8786a64 Push sortedStudies up higher so we can find the right index 2020-05-15 13:02:03 +01:00
dannyrb
fb1b47b9c9 Hook to query for series data 2020-05-15 13:02:03 +01:00
dannyrb
97cbf076f5 Remove unused filtersMeta 2020-05-15 13:02:03 +01:00
dannyrb
c455a9da3f Pass through for setting filter values so we can reset appropriate related fields when it changes 2020-05-15 13:02:03 +01:00
dannyrb
1e82603c05 filtersMeta to its own file 2020-05-15 13:02:03 +01:00
dannyrb
c1d399d543 export studyListTableRow from @ohif/ui 2020-05-15 13:02:02 +01:00
dannyrb
734bd9803d Use dataSource to query for, and wire up, series data 2020-05-15 13:02:02 +01:00
dannyrb
4dccefb21f seriesInStudy method 2020-05-15 13:02:02 +01:00
dannyrb
c532d94025 Default to truncating overflow text in series table 2020-05-15 13:02:02 +01:00
dannyrb
e57e0d7de8 Pass DataSource as prop to LayoutTemplate 2020-05-15 13:02:02 +01:00
dannyrb
1e58d8eb4b Wire up beginnings of series search 2020-05-15 13:02:02 +01:00
dannyrb
a11aea0439 Shift exampleInstances to a separate file 2020-05-15 13:02:02 +01:00
dannyrb
1107779a63 fix duplicate name/key render warning 2020-05-15 13:02:01 +01:00
dannyrb
e29a777a9f fix studyDate sort and display 2020-05-15 13:02:01 +01:00
dannyrb
10729c2414 Sort for everything except studydate/time 2020-05-15 13:02:01 +01:00
dannyrb
86eef997e4 basic sorting 2020-05-15 13:02:01 +01:00
dannyrb
1ec580be5d persist and set paging clientside 2020-05-15 13:02:01 +01:00
dannyrb
1979928d59 Round trip mrn filtering 2020-05-15 13:02:01 +01:00
dannyrb
053ed36e8f full circle ModalitiesInStudy filtering 2020-05-15 13:02:00 +01:00
Erik Ziegler
3ce4b886ac Fix context usage in ModeRoute 2020-05-15 13:02:00 +01:00
dannyrb
17e2680da8 Update Select to work on an array of values; so long as values are contained in options array 2020-05-15 13:02:00 +01:00
dannyrb
92923789e5 fix daterange presets 2020-05-15 13:02:00 +01:00
dannyrb
8f284aafac apply start/end dates to qido search 2020-05-15 13:02:00 +01:00
dannyrb
2b8f527d8c round trip query string parameters for startDate and endDate; drop JSON stringify 2020-05-15 13:02:00 +01:00
dannyrb
4413572c1c set a black background body class on enter/exit of component 2020-05-15 13:01:59 +01:00
dannyrb
1cd643314f parse and display correct time, if value is set 2020-05-15 13:01:59 +01:00
dannyrb
2ed1071956 Show (empty) for patientName if none is available 2020-05-15 13:01:59 +01:00
dannyrb
36bc73579d Title hover for truncated text 2020-05-15 13:01:59 +01:00
dannyrb
8dac6d7318 truncate and show ellipsis for content outside of cell bounds 2020-05-15 13:01:59 +01:00
dannyrb
1b9c0fcfae Auto include collapse/expand icon for first column as a part of row component 2020-05-15 13:01:59 +01:00
dannyrb
e3b0f60e69 Can't select row text, but can select expanded content text 2020-05-15 13:01:58 +01:00
James A. Petts
5c19671d3c WIP build up displaysets. 2020-05-15 13:01:58 +01:00
Erik Ziegler
d4f51c5e3c Work on adding SOPClassHandler module based on default behaviour currently in OHIF 2020-05-15 13:01:55 +01:00
dannyrb
c710f45c6f Prefer available search from history's location over useLocation/useQuery 2020-05-15 13:01:26 +01:00
dannyrb
ddbc2cea83 Prevent double render 2020-05-15 13:01:26 +01:00
dannyrb
45ca73946d Very basic search test based on query param 2020-05-15 13:01:26 +01:00
dannyrb
6f9c27f10b basic initial search and passing data to LayoutTemplate for list route 2020-05-15 13:01:26 +01:00
Erik Ziegler
3cf2eb5ed8 Wire up contextModule, panelModule, layoutTemplateModule. Viewer sort of displays 2020-05-15 13:01:25 +01:00
Erik Ziegler
8acd744710 Continue the ModeRoute work. Routes are reachable, but extensionManager needs to be improve to provide module entries correctly 2020-05-15 13:01:25 +01:00
dannyrb
20dd83e702 Hydrate our first data source 2020-05-15 13:01:25 +01:00
dannyrb
c3ee59c60e expose appConfig from App.js (no need to make reactive) 2020-05-15 13:01:25 +01:00
dannyrb
3238edddd2 Create a DataSourceWrapper to determine correct data source and provide data to layout component 2020-05-15 13:01:25 +01:00
dannyrb
068939b70f Expose managers to Viewer project from App.js 2020-05-15 13:01:25 +01:00
dannyrb
2a962cc8af expose useDebounce hook 2020-05-15 13:01:24 +01:00
dannyrb
e39d4d57d4 add query-string as a dependency 2020-05-15 13:01:24 +01:00
dannyrb
d2cf13a9a2 simplify useQuery 2020-05-15 13:01:24 +01:00
dannyrb
e4c440e211 add a debounce hook 2020-05-15 13:01:24 +01:00
Rodrigo Antinarelli
8f515701fa WIP useQuery implementation 2020-05-15 13:01:24 +01:00
dannyrb
573e00c8d8 Add MDX syntax highlighting extension to list of recommended 2020-05-15 13:01:24 +01:00
dannyrb
4c57335696 Rename setFilterValues prop to onChange 2020-05-15 13:01:24 +01:00
dannyrb
e4972a858c Remove quido portion of studies services, moved to IWebAPI implementation for dicomweb 2020-05-15 13:01:21 +01:00
dannyrb
3242bbcf76 Playing with how routes access ViewModel context and SopClassHandlers that map meta to ViewModel (displaySets) 2020-05-15 13:00:53 +01:00
dannyrb
b54e3734a7 Expose dicomMetadataStore in @ohif/core 2020-05-15 13:00:50 +01:00
dannyrb
e292bca92e Add support for route definition generation in appInit from modes config 2020-05-15 13:00:08 +01:00
dannyrb
e1690390d9 Expand extensionManager to index module definitions by namespace 2020-05-15 13:00:08 +01:00
dannyrb
f172f26dee Beginnings of a DICOMWeb API implementation that adheres to IWebApi interface 2020-05-15 13:00:07 +01:00
dannyrb
91a3c93985 hook to grab query parameters from react router 2020-05-15 13:00:07 +01:00
dannyrb
f54fa4cb34 Begin playing with how/where modes should be wrapped and have data provided 2020-05-15 13:00:07 +01:00
dannyrb
4edbb540da export named modules from DICOMWeb utility object 2020-05-15 13:00:07 +01:00
dannyrb
abfac8d48f Sad dicomMetadata store reminder for james 2020-05-15 13:00:07 +01:00
dannyrb
f5570c6ba0 remove viewports from modes config as a slot 2020-05-15 13:00:07 +01:00
dannyrb
14dabaabf6 layout template and side panel defaults
Co-authored-by: James Petts <jamesapetts@gmail.com>
Co-authored-by: Erik Ziegler <erik.sweed@gmail.com>
2020-05-15 13:00:06 +01:00
dannyrb
40fa10be87 init modes folder 2020-05-15 13:00:06 +01:00
dannyrb
7069627266 Stub get context module
Co-authored-by: James Petts <jamesapetts@gmail.com>
Co-authored-by: Erik Ziegler <erik.sweed@gmail.com>
2020-05-15 13:00:06 +01:00
Rodrigo Antinarelli
9f40ecb089 update extension 2020-05-15 13:00:06 +01:00
Rodrigo Antinarelli
cd7ed9ee9a routes config for Modes 2020-05-15 13:00:06 +01:00
Rodrigo Antinarelli
a5e3f27cfd initialize methods for app configs 2020-05-15 13:00:06 +01:00
Rodrigo Antinarelli
62cba34b0c create module types 2020-05-15 13:00:05 +01:00
Rodrigo Antinarelli
2a00427c90 initializing appConfig 2020-05-15 13:00:05 +01:00
Rodrigo Antinarelli
4928e20eab create AppConfig context 2020-05-15 13:00:05 +01:00
Rodrigo Antinarelli
55ae4f2b6c add blank config for modes in appConfig 2020-05-15 13:00:05 +01:00
Rodrigo Antinarelli
90430ae02a enable modes to the workspace 2020-05-15 13:00:05 +01:00
Rodrigo Antinarelli
e50bee6364 add modes
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
Co-authored-by: James Petts <jamesapetts@gmail.com>
2020-05-15 13:00:05 +01:00
Rodrigo Antinarelli
b848ad8f0e app configuration and App entrypoint update 2020-05-15 13:00:05 +01:00
Rodrigo Antinarelli
c127b0c260 update default appconfig 2020-05-15 13:00:01 +01:00
Rodrigo Antinarelli
b24680fad4 export web api interface 2020-05-15 12:59:29 +01:00
Rodrigo Antinarelli
ee69a5a40b create dicom web api 2020-05-15 12:59:29 +01:00
Rodrigo Antinarelli
97004de446 feat: OHIF-117 ohif extension default (#1712)
* initial structure for extension default

* webpack config

* split default modules into separated files

* bump versions

* update index

* update index

* fix

* Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-05-15 12:59:29 +01:00
Gustavo André Lelis
e633eb80eb feat: Notification provider and service (#1703)
* Create basic structure for Viewport dialog provier and Dialog component

* Implementation of a UIViewportDialogService

* Update viewportDialogProvider docz

* Create example of use of UIViewportDialogService
2020-05-15 12:59:28 +01:00
Rodrigo Antinarelli
cee09fcf8d feat: OHIF-120 - Study List Route Template (#1693)
* fix pagination size

* clean up, start a very basic route configuration

* quick navigation between routes

* configure webpack to read .env variables

* export studylist filter

* split studylist filter into a component

* minor fix in studylist pagination

* update studylistfilter imports

* create studylist container with study list content

* moving file

* study list filter doc page

* catch change in ui-v2

* fix: 1px gap that shows text underneath

* Shift to routes folder

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-05-15 12:59:26 +01:00
Rodrigo Antinarelli
01b314522d feat: New @ohif/viewer project structure + routes (#1674)
* fix pagination size

* clean up, start a very basic route configuration

* quick navigation between routes

* configure webpack to read .env variables

* Move container components to Routes directory

* Fix naming of recipe file

* Clean up source folder

* update yarn.lock

* ci: update netlify deploy preview to build viewer project

* update PWA entrypoint to pass configuration on window to App as props

* fix: for missing key

* Pass routerBasename to our React Router component

* Simplify config for meow

Co-authored-by: dannyrb <danny.ri.brown@gmail.com>
2020-05-15 12:57:23 +01:00
Rodrigo Antinarelli
9a8bede80e fix small defects 2020-05-15 12:56:35 +01:00
Gustavo Lelis
11e58e70f6 Implement tooltip on remaining paces 2020-05-15 12:56:35 +01:00
Rodrigo Antinarelli
57f4f4691c update viewport documentation 2020-05-15 12:56:35 +01:00
Rodrigo Antinarelli
eafe158e62 clean up draft 2020-05-15 12:56:34 +01:00
Rodrigo Antinarelli
12d1ff6bea feat: Viewport API + Documentation Page 2020-05-15 12:56:32 +01:00
Rodrigo Antinarelli
5f9535a74b feat: Viewport component and API definition 2020-05-15 12:56:11 +01:00
Gustavo Lelis
08ebfd5865 Update sidePanel to support multiple components 2020-05-15 12:56:09 +01:00
Gustavo Lelis
802a8d5f1b Fix propTypes and update tracked series tag 2020-05-15 12:55:54 +01:00
Gustavo Lelis
928dc9f7b0 Updating mockData 2020-05-15 12:55:12 +01:00
Gustavo Lelis
19aec45797 Rename thumbnailSR 2020-05-15 12:55:12 +01:00
Gustavo Lelis
8ae21a97d8 Refactor Thumbnail component 2020-05-15 12:55:12 +01:00
Gustavo Lelis
61f10f024a Include theme min height 2020-05-15 12:55:12 +01:00
Gustavo Lelis
ad6b592a37 ThumbnailTracked component 2020-05-15 12:55:12 +01:00
Rodrigo Antinarelli
b8febd1bd1 feat: OHIF-113 - MeasurementsPanel API (#1655)
* feat: Tooltip, ToolbarButton, Toolbar API and misc

* make toolbar reusable to use as secondary

* update toolbar documentation page

* feat: MeasurementsPanel API definition + content

* update documentation page
2020-05-15 12:55:06 +01:00
Rodrigo Antinarelli
8e43bca3f2 fix: Update MeasurementTable doc page 2020-05-15 12:54:29 +01:00
Rodrigo Antinarelli
54720368bf update documentation page 2020-05-15 12:54:29 +01:00
Rodrigo Antinarelli
a3f2080834 feat: MeasurementsPanel API definition + content 2020-05-15 12:54:29 +01:00
Rodrigo Antinarelli
8f566c7ef4 update toolbar documentation page 2020-05-15 12:54:28 +01:00
Rodrigo Antinarelli
b651ba02ff make toolbar reusable to use as secondary 2020-05-15 12:54:28 +01:00
Rodrigo Antinarelli
9154f36477 feat: Tooltip, ToolbarButton, Toolbar API and misc 2020-05-15 12:54:28 +01:00
Rodrigo Antinarelli
3223d6a8a1 fix notification margin 2020-05-15 12:54:28 +01:00
Rodrigo Antinarelli
1ff13fb786 fix notification bar 2020-05-15 12:54:28 +01:00
Rodrigo Antinarelli
cb7f6cd709 fix panel width 2020-05-15 12:54:28 +01:00
Rodrigo Antinarelli
ebef71da3b add viewport notification 2020-05-15 12:54:25 +01:00
Gustavo Lelis
947f671ab1 Fix scrollbar on Firefox 2020-05-15 12:54:01 +01:00
Gustavo Lelis
7dccf77c7d Fix: Header shouldn’t be sticky on Viewer Route 2020-05-15 12:53:49 +01:00
Gustavo Lelis
68b8b04a1c Fix: Z-index issue for “annotation tools” overlay Viewport ActionBar “Label” (Checkmark + ‘A’) 2020-05-15 12:53:46 +01:00
Gustavo Lelis
f084597f2b Fix: Active Viewport border width discrepancy causes resize 2020-05-15 12:53:28 +01:00
Rodrigo Antinarelli
6167e018dd remove console.log 2020-05-15 12:53:04 +01:00
Rodrigo Antinarelli
ed30a4ccac fix side panel header 2020-05-15 12:52:48 +01:00
Rodrigo Antinarelli
cb9011b58a fix sidepanel header height 2020-05-15 12:52:47 +01:00
Gustavo Lelis
3c6408b99e Style ficx on tooltip for viewport toolbar 2020-05-15 12:52:47 +01:00
Gustavo Lelis
f96f965a76 Small style fixes and implementation of toolbars on viewer docz page 2020-05-15 12:52:44 +01:00
Gustavo Lelis
a0662c4883 Fixing eslint issues 2020-05-15 12:52:27 +01:00
Gustavo Lelis
2131cb5abb Update docz after callouts 2020-05-15 12:49:40 +01:00
Gustavo Lelis
993c46022c Docz for context provider 2020-05-15 12:49:40 +01:00
Rodrigo Antinarelli
164fef3542 minor fix 2020-05-15 12:49:40 +01:00
Rodrigo Antinarelli
6434c0f112 feat: Viewport Action Bar 2020-05-15 12:49:38 +01:00
Rodrigo Antinarelli
29c3ad1fca fix relative css 2020-05-15 12:49:28 +01:00
Rodrigo Antinarelli
bf20084dfb fix responsive display 2020-05-15 12:49:27 +01:00
Rodrigo Antinarelli
63202065b9 feat: Viewport Notification 2020-05-15 12:49:27 +01:00
Gustavo Lelis
d13c2f6a69 Viewport grid component 2020-05-15 12:49:27 +01:00
Gustavo André Lelis
eda99a0bac OHIF-79: Study Browser side panel (#1614)
* Initial code changes for StudyBrowser

* StudyItem component basic strucure

* Adding new icon

* Updates to get StudyItem working

* Small fix on side panel open header

* Adding new icons

* Thumbnail List

* ThumbnailSR WIP

* Thumanil WIP

* Export new components into ohif/ui

* Updates on style

* Update ThumbnailSR style

* Margin updates

* MAke it scrollable

* Make it scrollable

* Style updates

* Fixing tooltip

* Tunning the mock data and testing scenarios

* Update mock data

* make all studies collapsed

* small fix on tooltip

* Removing empty mdx files

* Updating viewer docz page

* Style updates

* Update button font-size

* Fix: Make cancel button only visible on hover

* Fixing callouts

* Fix eslint
2020-05-15 12:49:24 +01:00
Rodrigo Antinarelli
51750c6ede fix viewer 2020-05-15 12:47:48 +01:00
Rodrigo Antinarelli
af7f2f525b create segmentation and measurement mdx 2020-05-15 12:47:48 +01:00
Rodrigo Antinarelli
bfdcf6ecb6 Empty measurements 2020-05-15 12:47:48 +01:00
Rodrigo Antinarelli
9bffa88bed Segments table and color LUT 2020-05-15 12:47:48 +01:00
Rodrigo Antinarelli
b9da65ed9e feat: Measurement Table 2020-05-15 12:47:45 +01:00
Rodrigo Antinarelli
4c09467672 fix toolbar colors 2020-05-15 12:47:16 +01:00
Rodrigo Antinarelli
f9eac89d49 fix doc page title 2020-05-15 12:47:16 +01:00
Rodrigo Antinarelli
cd167dbd30 feat: Secondary Toolbar 2020-05-15 12:47:16 +01:00
Rodrigo Antinarelli
25ae057c7c split css from tailwind and fx studyList icon 2020-05-15 12:47:16 +01:00
Rodrigo Antinarelli
9acea28a35 fix onClick check 2020-05-15 12:47:15 +01:00
Rodrigo Antinarelli
8185468bd2 minor fixes 2020-05-15 12:47:15 +01:00
Rodrigo Antinarelli
440dc74828 minor fixes 2020-05-15 12:47:15 +01:00
Rodrigo Antinarelli
8af93d845f fix docz menu 2020-05-15 12:47:15 +01:00
Gustavo Lelis
da5b4591d0 Updating icons naming and colors 2020-05-15 12:47:15 +01:00
Gustavo Lelis
636f86323a fix border blicking in white on transition 2020-05-15 12:47:15 +01:00
Gustavo Lelis
4668fbfa27 Fix callouts 2020-05-15 12:47:15 +01:00
Gustavo Lelis
0a5009f80b Basci example for SidePanel 2020-05-15 12:47:14 +01:00
Gustavo Lelis
345d136590 Small fixes 2020-05-15 12:47:14 +01:00
Gustavo Lelis
f838de8059 Fix viewer's docz page 2020-05-15 12:47:14 +01:00
Gustavo Lelis
c8eda21da4 Update icons and small refacto for performance 2020-05-15 12:47:14 +01:00
Gustavo Lelis
1cf286962c Update Docs 2020-05-15 12:47:14 +01:00
Gustavo Lelis
5f695f2e66 Addin new icons 2020-05-15 12:47:14 +01:00
Gustavo Lelis
59dd5820dd Side pannels 2020-05-15 12:47:13 +01:00
Gustavo Lelis
a2ff5e9e48 Small style update 2020-05-15 12:47:13 +01:00
Gustavo Lelis
8be7854118 Initial changes for SidePanel 2020-05-15 12:47:11 +01:00
Rodrigo Antinarelli
c902ba201f svg icons, tw stroke, toolbar icons and more menu 2020-05-15 12:46:47 +01:00
Rodrigo Antinarelli
9cc530e964 fix tooltip width 2020-05-15 12:46:46 +01:00
Rodrigo Antinarelli
b3dff5ddee feat: Toolbar Header 2020-05-15 12:46:44 +01:00
Rodrigo Antinarelli
f8bbee22b7 feat: Custom Menu Structure (#1605) 2020-05-15 12:46:23 +01:00
Rodrigo Antinarelli
ba5e1497bf fix color conflicts 2020-05-15 12:46:23 +01:00
Rodrigo Antinarelli
f4b078912a feat: StudyListTable, ExpandedRow, API definitions (#1579)
* feat: StudyListTable Refactor

* feat: StudyListTable + Props Refactor

* fix expanded rows handler

* update and fix study list doc page

* fix date format

* use moment to format date

* expose new components

* fix study list expanded row

* Export and Create doc page for Pagination

* API Definition, Export and Doc page for StudyListTable

* StudyListTableRow

* use real example to mount study list

* move files

* temporary change study list (viewer) structure

* fix studyList

* remove unused files

* remove file

* remove unused package

* PR fixes

* Remove console.dir

Co-authored-by: Gustavo Lelis <galelis@gmail.com>
2020-05-15 12:46:20 +01:00
Gustavo André Lelis
056f56f5b4 refactor: StudyListFilter refactor (#1580)
* Creating InputGroup

* Updating Views with new InputGroup

* Creating Docz for InputGroup

* Fixing eslint issues

* Renaming inputGroup props naming to be more generic.
2020-05-15 12:44:33 +01:00
Rodrigo Antinarelli
5766d4e91a remove old colors 2020-05-15 12:43:49 +01:00
Rodrigo Antinarelli
b6201ebc34 feat: ui-v2 Color System Naming 2020-05-15 12:43:46 +01:00
Gustavo André Lelis
5541fb1f4b chore: Header docz page examples (#1586)
* Creating Header example

* Improve NavBag example page

* Fixing callouts
2020-05-15 12:42:32 +01:00
Gustavo Lelis
1150e5a1a4 Updating Docz imports 2020-05-15 12:42:31 +01:00
Gustavo André Lelis
de484275e8 Creating combo input with label, naming and input for Text, Select and DateRange (#1553)
* Issues: OHIF-46, OHIF-47, OHIF-48
2020-05-15 12:42:28 +01:00
Rodrigo Antinarelli
3fe3634475 refactor table doc page 2020-05-15 12:41:52 +01:00
Rodrigo Antinarelli
ef1f50693c feat: UI v2 EmptyStudies Component 2020-05-15 12:41:49 +01:00
Rodrigo Antinarelli
90967c0418 tableless table description 2020-05-15 12:39:24 +01:00
Rodrigo Antinarelli
c05aab4e17 add colSpan support 2020-05-15 12:39:24 +01:00
Rodrigo Antinarelli
1a07807dba fix docz playground font 2020-05-15 12:39:24 +01:00
Rodrigo Antinarelli
cfb8fc91b8 fix tablecell isTableHead classes 2020-05-15 12:39:23 +01:00
Rodrigo Antinarelli
b9252d9491 fix tableRow childrens (props not passing down) 2020-05-15 12:39:23 +01:00
Rodrigo Antinarelli
00df4a1f31 table components props into the same doc page 2020-05-15 12:39:23 +01:00
Rodrigo Antinarelli
ec1e1933e8 fix for TableBody 2020-05-15 12:39:23 +01:00
Rodrigo Antinarelli
062b0f5b99 fix children check and custom propType checker 2020-05-15 12:39:23 +01:00
Rodrigo Antinarelli
bf2c731807 fix export for exposed files 2020-05-15 12:39:20 +01:00
Rodrigo Antinarelli
95023d6247 fix table fullwidth classes 2020-05-15 12:39:00 +01:00
Rodrigo Antinarelli
4e7c062aee create table elements documentation 2020-05-15 12:38:59 +01:00
Rodrigo Antinarelli
8636e30f74 create alignment props 2020-05-15 12:38:59 +01:00
Rodrigo Antinarelli
3e6fa5f03f fix table alignment (due to scrollbar) 2020-05-15 12:38:59 +01:00
Rodrigo Antinarelli
e95a6bd5b0 adding more rows 2020-05-15 12:38:59 +01:00
Rodrigo Antinarelli
34961e5624 feat: v2 Table Component 2020-05-15 12:38:56 +01:00
Gustavo Lelis
01c5456ccf Fixing docz 2020-05-15 12:38:21 +01:00
Gustavo Lelis
69ff46fa5c Adding NavBag into Header 2020-05-15 12:38:21 +01:00
Gustavo Lelis
18ab336df3 Inicial files 2020-05-15 12:38:21 +01:00
Gustavo Lelis
6f198178ac Fix docz import typo 2020-05-15 12:38:20 +01:00
Gustavo André Lelis
e54ccd1373 OHIF-43: Modal Context Provider (#1538) 2020-05-15 12:38:20 +01:00
Gustavo André Lelis
b7a72f5225 OHIF-32: Wrapping React-select with our style requirements (#1529)
* Custom Select component

* Including inpot section

* Adding missing import sections on docz

* Change cursor once is disabled

* update date range color font
2020-05-15 12:38:18 +01:00
Rodrigo Antinarelli
b183e78f47 feat: ui v2 - Date Range Component (#1537)
* feat: Date Range wrapper component

* fix yarn issues

* add calendar icon

* date range css styles

* date range fixes

* fix propTypes warning

* fix clear method, defaultProps & onChange method

* update inline styles to use tailwind classes

* date range documentation page

* minor refactor
2020-05-15 12:38:05 +01:00
Danny
0ec277dd56 fix broken build 2020-05-15 12:38:02 +01:00
Rodrigo Antinarelli
16f59cb5b8 fix study list filter border 2020-05-15 12:37:41 +01:00
Rodrigo Antinarelli
4a3f147c4e fix header navbar border 2020-05-15 12:37:41 +01:00
Rodrigo Antinarelli
bc7cf6e01d fix sticky elements 2020-05-15 12:37:41 +01:00
Rodrigo Antinarelli
b39a96cfb2 fix: StudyList Fixes 2020-05-15 12:37:41 +01:00
Gustavo André Lelis
11bd7105d6 fix: Issues on StudyList Filter (#1513)
* Fix instances font size

* Fixing sorting style and icons

* Fix clear filters flicking filter parent height

* Make filter size matching with study list table columns

* Addin width for grid24

* Use grid24 instead of 12

* Adding missing borders

* Fix gridCol division
2020-05-15 12:37:41 +01:00
Rodrigo Antinarelli
88846e5c70 fix: Select pagination and buttons (#1521) 2020-05-15 12:37:40 +01:00
Rodrigo Antinarelli
2bf5486112 chore: Data Mocking for Study List (#1515)
* feat: Data mocking for studies

* feat: Data Mocking for Study List

* fix empty study position

* rename variables for numOfStudies

* fix studies query

* remove alert :|

* minor refactor

* split utils and refactoring

* refactoring -- format, clean up icons, mdx mock
2020-05-15 12:37:40 +01:00
Gustavo André Lelis
2138565990 feat: Study List Filter (#1504)
* Inital changes for study list filters

* Style updates on filter

* Small style changes on filter

* Style changes updates on Input and Label and finish fitler

* Refactor on study list filter

* Remove not used callbackFunction

* Small style change

* Adding underline on Learn more link

* Make sure does not show sortable if have no results

* Some style polish

* Fixing margin on filter

* Adding inherit as color on buttons

* Adding inherit on learn more button color

* Addin border with opacity
2020-05-15 12:37:38 +01:00
Rodrigo Antinarelli
2049147021 chore: uiv2 docz custom page (#1511)
* feat: Customized Docz Layout

* manually apply padding into playground

* fix playground bug -- sticky items

* fix window

* remove specifc tailwind style for docz
2020-05-15 12:37:14 +01:00
Rodrigo Antinarelli
dd18de86f8 chore: Add new eslint rule -- props-no-spreading (#1509) 2020-05-15 12:36:01 +01:00
Gustavo André Lelis
8c6daf5395 Feat/ui v2 ohif logo svg (#1506)
* Adding new icons

* Introducing Svg component

* Adding ohif logo into header
2020-05-15 12:36:01 +01:00
Gustavo André Lelis
a738990675 feat: Study List Header (#1498)
* Initial code for header

* Basic implementation for the header

* Updating icons

* Fix conflicts after latest changes on base branch

* Smnall refactor on header

* Small text-size change

* Remove comment

* Remove link from OHIF logo

* Fix cog/settings icon
2020-05-15 12:36:01 +01:00
Rodrigo Antinarelli
dbd0f74bea feat: Study List Pagination (#1502)
* remove unused file

* add new color

* pagination handler
2020-05-15 12:36:00 +01:00
Rodrigo Antinarelli
fe672a804e feat: Study List Table - v2 (#1497)
* small fix in button hover

* exported icons

* feat: StudyList Table

* icons comment

* fix bottom spacing

* add gatsby plugin for svg import

* move mock file to ui

* replace component to import from ui

* move StudyList to platform/ui

* fix inner table bg color

* fix inner table border

* add custom flex values

* create custom class for custom scrollbar

* fix inner table

* update comment

* refactor for reusable classes

* update scrollbar name

* fix studyList export

* update scrollbar class
2020-05-15 12:36:00 +01:00
Gustavo André Lelis
f4aea45e01 feat: Icon component (#1499)
* New icons and old strucure of OHIF ui v1

* Export icon

* Removing wrong import and fixing some exports

* Fixing svg loader and svg images to fullCurrent

* Small fixes on docz

* Remove repeated icon

* Update other components to use Icon

* Update platform/ui/src/components/Icon/icon.mdx

Co-Authored-By: Rodrigo Antinarelli <rodrigoantinarelli@gmail.com>

* Fixing callouts

* Move icons to assets and fixing layout on iconButtons

* Fix path of icons

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
Co-authored-by: Rodrigo Antinarelli <rodrigoantinarelli@gmail.com>
2020-05-15 12:35:57 +01:00
Gustavo Lelis
ff90f729ab Move props definitions to end on docz 2020-05-15 12:35:37 +01:00
Gustavo Lelis
bc7de7e528 GroupButton component and docz 2020-05-15 12:35:00 +01:00
Rodrigo Antinarelli
e0aba9fe88 temporary mocked data for study list 2020-05-15 12:35:00 +01:00
Rodrigo Antinarelli
6b853eae56 create themeWrapper to be used as wrapper 2020-05-15 12:35:00 +01:00
Rodrigo Antinarelli
93b7d50fea export ui components 2020-05-15 12:34:59 +01:00
Rodrigo Antinarelli
5783c7cfdb temporary structure for studylist 2020-05-15 12:34:57 +01:00
Rodrigo Antinarelli
29bf8ed464 create initial studylist placeholder files 2020-05-15 12:33:13 +01:00
Rodrigo Antinarelli
ac1088e1e3 fix typography colors 2020-05-15 12:33:12 +01:00
Rodrigo Antinarelli
3a63c3d20b update lock file 2020-05-15 12:33:12 +01:00
Rodrigo Antinarelli
52a2cdf702 fix iconButton sizes 2020-05-15 12:33:12 +01:00
Rodrigo Antinarelli
16bd29077e fix theme colors 2020-05-15 12:33:10 +01:00
Rodrigo Antinarelli
cdcfc7115f update tailwind base config with custom theme 2020-05-15 12:32:32 +01:00
Rodrigo Antinarelli
7c802da4d8 fix theme colors for IconButton 2020-05-15 12:32:32 +01:00
Rodrigo Antinarelli
bcc2285afa add custom font 2020-05-15 12:32:31 +01:00
Rodrigo Antinarelli
b9cd4a6095 add how to import in button documentation 2020-05-15 12:32:29 +01:00
Rodrigo Antinarelli
82079a219d fix button proptype 2020-05-15 12:31:50 +01:00
Rodrigo Antinarelli
7749da5555 feat: Typography component 2020-05-15 12:31:49 +01:00
Rodrigo Antinarelli
c6f9f092b4 extend tailwind theme -- add default colors 2020-05-15 12:31:49 +01:00
Rodrigo Antinarelli
8463efe512 fix docz theme 2020-05-15 12:31:46 +01:00
Rodrigo Antinarelli
e63dccdb4e fix docz wrapper propTypes 2020-05-15 12:31:15 +01:00
Rodrigo Antinarelli
8ab6ccd570 remove old tailwind config file 2020-05-15 12:31:15 +01:00
Rodrigo Antinarelli
f7a0a2bd92 update tailwind theme 2020-05-15 12:31:15 +01:00
Danny
a0b73d2b1f bump yarn version for netlify 2020-05-15 12:31:14 +01:00
Rodrigo Antinarelli
e84f88691f fix unexpected comma 2020-05-15 12:30:15 +01:00
Rodrigo Antinarelli
da4ebddc65 remove unused proptype definition 2020-05-15 12:29:03 +01:00
Rodrigo Antinarelli
014f2d3513 clean up postcss config 2020-05-15 12:29:00 +01:00
Danny Brown
d6e3b45f3c feat: nuke UI project; start new with updated tooling BREAKING_CHANGE (#1468)
BREAKING_CHANGE

* initial structure for components rewrite

* WIP Input

* WIP Label

* add button props

* add label class name

* fix dependency

* new examples buttonModules & buttonEmotion + refac

* clean up to merge initial code into base branch

* remove unused file

* extend default theme -- add new colors

* chore: prettier formatting

* chore: try to exclude feature branch PRs

* chore: suggest toml syntax highlighting extension

* chore: capture yarn.lock changes

* docs: condense readme

* chore: update deploy preview to build docz component library

* chore: Add component library to deploy preview index

* chore: fix invalid tailwindcss config

* chore: try tweaking toml to kickstart preview

* chore: revert

* chore: fix formatting of file index

* chore: don't waste precious build minutes on a broken build

* chore: chmod build-and-deploy.sh

* ci: nuke circleci until we need the workflows on master

* debug lerna commands

* remove redundant yarn commands

* try nohoist

* revert tests

* attempt to resolve import issue

* force update yarn lock

* try new workarounds for yarn version

* another workaround

* shift vtk to extension repo deps

* catch vtk addition

* update lock

* Try older yarn version

* try again

* debugging

* fix: yarn doctor warnings

* learn some life lessons from the yarn docs

* clean up netlify.toml

* clean up netlify.toml

* yarn package doctor react-dom

* yarn doctor: missing peer dep

* yarn doctor, satisfying webpack loader peer deps

* fix docz base path for deploy-preview

* yarn docter: replaced prePublishOnly usage

* More yarn doctoring

* ignore .yarn directory

* fix last yarn doctor warning

* updated yarn lock

Co-authored-by: Rodrigo Antinarelli <rodrigoantinarelli@gmail.com>
2020-05-15 12:28:18 +01:00
Rodrigo Antinarelli
8c90d76ea6 feat: create IconButton component 2020-05-15 12:21:23 +01:00
Rodrigo Antinarelli
cdb2ef72a3 update Button docs 2020-05-15 12:21:23 +01:00
Rodrigo Antinarelli
36d5a46028 feat: Button Component 2020-05-15 12:21:19 +01:00
Rodrigo Antinarelli
4a24bcbeb5 extend default theme -- add new colors 2020-05-15 12:20:06 +01:00
Rodrigo Antinarelli
ba3802968b remove unused file 2020-05-15 12:20:06 +01:00
Rodrigo Antinarelli
e3bb30a591 base branch for ui v2 2020-05-15 12:20:02 +01:00
Rodrigo Antinarelli
3110978d03 clean up to merge initial code into base branch 2020-05-15 12:19:09 +01:00
Rodrigo Antinarelli
b53d4528fb new examples buttonModules & buttonEmotion + refac 2020-05-15 12:19:05 +01:00
Rodrigo Antinarelli
d03e3d3928 fix dependency 2020-05-15 12:18:35 +01:00
Rodrigo Antinarelli
ddac8a4299 add label class name 2020-05-15 12:18:34 +01:00
Rodrigo Antinarelli
f713306fe3 add button props 2020-05-15 12:18:34 +01:00
Rodrigo Antinarelli
c68d0173df WIP Label 2020-05-15 12:18:34 +01:00
Rodrigo Antinarelli
7617a8b9ee WIP Input 2020-05-15 12:18:34 +01:00
Rodrigo Antinarelli
c391c007ff initial structure for components rewrite 2020-05-15 12:18:30 +01:00
ohif-bot
944afe4a3e chore(release): publish [skip ci]
- @ohif/viewer@4.0.0
2020-05-14 14:24:17 +00:00
Igor Octaviano
b1678ce639
fix: 🐛 Fix race condition when loading derived display sets (#1718)
When we have multiple SEGs/RTSTRUCTs we intend to load the most recent
by default.

BREAKING CHANGE: 🧨 However we start to load once the first set of metadata arrives. We need
to wait until all series metadata is fetched.

 Closes: #1715

Co-authored-by: James Petts <jamesapetts@gmail.com>
2020-05-14 15:20:23 +01:00
ohif-bot
39937cca08 chore(release): publish [skip ci]
- @ohif/extension-dicom-rt@0.1.4
 - @ohif/extension-vtk@1.5.6
 - @ohif/core@2.9.6
 - @ohif/viewer@3.11.11
2020-05-14 11:53:42 +00:00
Igor Octaviano
f7b8b6a41c
fix: 🐛 Load default display set when no time metadata (#1684)
* fix: 🐛 Load default display set when no time metadata

Load default displayset (first item in the array) when no series date or
series time availalbe

 Closes: #1683

* Add batch update

* Fix tests.

Co-authored-by: James Petts <jamesapetts@gmail.com>
2020-05-14 12:51:57 +01:00
ohif-bot
79fe442293 chore(release): publish [skip ci]
- @ohif/viewer@3.11.10
2020-05-13 14:03:09 +00:00
Danny Brown
875238e5b0
chore: add fuzzymatching to default server configs
Add fuzzymatching to default server configs
2020-05-13 10:00:55 -04:00
Erik Ziegler
d2d3ca2828 Add fuzzymatching to default server configs 2020-05-13 15:58:29 +02:00
ohif-bot
cebea832a3 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.7.3
 - @ohif/extension-dicom-rt@0.1.3
 - @ohif/extension-dicom-segmentation@0.2.6
 - @ohif/extension-vtk@1.5.5
 - @ohif/core@2.9.5
 - @ohif/viewer@3.11.9
2020-05-12 14:49:58 +00:00
James Petts
c4f84b1174
fix: 🐛 Fix seg color load (#1724) 2020-05-12 15:47:35 +01:00
ohif-bot
f9fe4232e7 chore(release): publish [skip ci]
- @ohif/extension-dicom-segmentation@0.2.5
 - @ohif/extension-vtk@1.5.4
 - @ohif/core@2.9.4
 - @ohif/viewer@3.11.8
2020-05-06 17:20:22 +00:00
Igor Octaviano
42c22df1b6
Segmentation UI for VTKjs (#1685)
* Add single viewport configuration

* Multiple viewport configuration

* Improve performance by using independent set methods

* Add jump to slice command

* Add context configuration

* Cache panel visibility

* Fix sync between vtk and cornerstone

* Remove apis index

* Add approach

* Add loading to update volumes

* Fix broken configuration

* Bump vtk version

* Use loading label

* Update cy tests after vtk loading label changed

* Remove loading for segs
2020-05-06 18:17:44 +01:00
ohif-bot
19a8e71317 chore(release): publish [skip ci]
- @ohif/extension-dicom-segmentation@0.2.4
 - @ohif/viewer@3.11.7
2020-05-04 14:46:58 +00:00
James Petts
fa95bae6ef
Support initialization of segment color from RecommendedDisplayCIELabValue (#1709)
* fix: 🐛 Proper error handling for derived display sets

* Revert idc.js change

* Load correct Segment colors.
2020-05-04 15:43:09 +01:00
ohif-bot
8a20a0526e chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.7.2
 - @ohif/extension-dicom-html@1.2.2
 - @ohif/extension-dicom-rt@0.1.2
 - @ohif/extension-dicom-segmentation@0.2.3
 - @ohif/extension-vtk@1.5.3
 - @ohif/core@2.9.3
 - @ohif/ui@1.4.4
 - @ohif/viewer@3.11.6
2020-05-04 14:15:22 +00:00
James Petts
5b20d8f323
fix: 🐛 Proper error handling for derived display sets (#1708)
* fix: 🐛 Proper error handling for derived display sets

* Revert idc.js change
2020-05-04 15:10:39 +01:00
ohif-bot
9ea37a2201 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.7.1
 - @ohif/viewer@3.11.5
2020-05-04 12:37:30 +00:00
Igor Octaviano
2a66e175df
Update viewport state after moving the stack (#1645)
* Update viewport state after moving the stack

* Only trigger new imagecallback if index bigger than 0

* Fix cornerstone viewport version

Co-authored-by: James Petts <jamesapetts@gmail.com>
2020-05-04 13:30:51 +01:00
ohif-bot
77a421cdc0 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.5.2
 - @ohif/core@2.9.2
 - @ohif/viewer@3.11.4
2020-05-04 08:15:19 +00:00
Sanders DeNardi
7033886697
fix: use bit-appropriate array for palette lookup tables (#1698)
Co-authored-by: Sanders DeNardi <sdenardi@summusglobal.com>
2020-05-04 09:13:04 +01:00
ohif-bot
256563d7ee chore(release): publish [skip ci]
- @ohif/viewer@3.11.3
2020-04-29 12:56:38 +00:00
Erik Ziegler
f7162ce617
fix: Add IHEInvokeImageDisplay routes back into viewer (#1695) 2020-04-29 08:54:40 -04:00
ohif-bot
027ef4f93c chore(release): publish [skip ci]
- @ohif/extension-dicom-html@1.2.1
 - @ohif/extension-dicom-rt@0.1.1
 - @ohif/extension-dicom-segmentation@0.2.2
 - @ohif/extension-vtk@1.5.1
 - @ohif/core@2.9.1
 - @ohif/viewer@3.11.2
2020-04-28 10:52:19 +00:00
Khalid Williams
f09ebbe2e8
chore: cleanup dcmjs imports
* Update imports in /platform

* Update dcmjs imports in /extentions
2020-04-28 06:49:57 -04:00
David Connaughton
51b4e60161
docs: updated deployment section with info for using JSON (#1676)
* update deploy section with non-dicomweb info

* fix typo and add info re. case sensitive json

* Add CORS info and reformat inline links

Co-authored-by: eolasd <pacsradwp@gmail.com>
2020-04-27 16:11:35 -04:00
ohif-bot
08de987711 chore(release): publish [skip ci]
- @ohif/extension-dicom-segmentation@0.2.1
 - @ohif/viewer@3.11.1
2020-04-27 08:41:40 +00:00
Igor Octaviano
20e366ffbd
fix: 🐛 Dropdown not updating when selecting segment (#1675)
Observe selectedSegmentation changes to refresh segment list

 Closes: #1669
2020-04-27 09:39:11 +01:00
ohif-bot
561911056a chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.7.0
 - @ohif/extension-dicom-html@1.2.0
 - @ohif/extension-dicom-rt@0.1.0
 - @ohif/extension-dicom-segmentation@0.2.0
 - @ohif/extension-vtk@1.5.0
 - @ohif/core@2.9.0
 - @ohif/viewer@3.11.0
2020-04-24 10:29:19 +00:00
Igor Octaviano
835f64d47a
feat: 🎸 Seg jump to slice + show/hide
* Add segment part 2 (jump to frame and visibility toggle)

* Cr updates

* Filter displaysets with images

* feat: 🎸 Seg jump to slice + show/hide

Co-authored-by: James Petts <jamesapetts@gmail.com>
2020-04-24 11:25:05 +01:00
ohif-bot
fc40d84092 chore(release): publish [skip ci]
- @ohif/viewer@3.10.2
2020-04-23 16:20:51 +00:00
Danny Brown
709f14708e
fix: undefined errorHandler in cornerstoneWadoImageLoader configuration (#1664) 2020-04-23 12:17:49 -04:00
ohif-bot
5f4c4ab5e7 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.6.1
 - @ohif/extension-vtk@1.4.1
 - @ohif/core@2.8.1
 - @ohif/viewer@3.10.1
2020-04-23 10:04:47 +00:00
James Petts
71205618ec
fix: 🐛 Multiframe fix (#1661) 2020-04-23 11:02:51 +01:00
ohif-bot
5014ba864b chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.6.0
 - @ohif/extension-dicom-p10-downloader@0.1.0
 - @ohif/extension-vtk@1.4.0
 - @ohif/core@2.8.0
 - @ohif/viewer@3.10.0
2020-04-23 02:06:44 +00:00
James Petts
e96205de35
feat: configuration to hook into XHR Error handling
* Error handling.

* Fix error handling, add redirect example.

* remove debugger

* docs: whitelabeling and httpErrorHandler

* bump dicomweb-client version

* bump cornerstone-wado-image-loader version

* Add more documentation around httpErrorHandler callback

* test: add errorHandler as an expected top level export

Co-authored-by: dannyrb <danny.ri.brown@gmail.com>
2020-04-22 22:01:34 -04:00
ohif-bot
273f31ad56 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.3.14
 - @ohif/core@2.7.1
 - @ohif/viewer@3.9.2
2020-04-22 20:19:12 +00:00
Danny Brown
2093a00365
fix: whiteLabeling should support component creation by passing React to defined fn (#1659) 2020-04-22 16:16:53 -04:00
dependabot[bot]
b1dad6b61b
chore(deps): bump https-proxy-agent from 2.2.1 to 2.2.4 in /docs/latest (#1641)
Bumps [https-proxy-agent](https://github.com/TooTallNate/node-https-proxy-agent) from 2.2.1 to 2.2.4.
- [Release notes](https://github.com/TooTallNate/node-https-proxy-agent/releases)
- [Commits](https://github.com/TooTallNate/node-https-proxy-agent/compare/2.2.1...2.2.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-04-18 22:05:44 -04:00
ohif-bot
3a587f4e4b chore(release): publish [skip ci]
- @ohif/viewer@3.9.1
2020-04-17 16:28:57 +00:00
Danny Brown
d9fc7bbb0e
fix: showStudyList config (#1647)
* fix: `showStudyList` config

* showStudyList should default to true if not defined
2020-04-17 12:26:09 -04:00
ohif-bot
b0cfc45f83 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.3.13
 - @ohif/core@2.7.0
 - @ohif/viewer@3.9.0
2020-04-17 14:16:04 +00:00
Danny Brown
450c80b9d5
feat: set the authorization header for DICOMWeb requests if provided in query string (#1646) 2020-04-17 10:14:13 -04:00
ohif-bot
d3eefb50f5 chore(release): publish [skip ci]
- @ohif/extension-dicom-p10-downloader@0.0.2
 - @ohif/extension-vtk@1.3.12
 - @ohif/core@2.6.11
 - @ohif/viewer@3.8.21
2020-04-15 17:00:38 +00:00
Emanuel Fiuza de Oliveira
29d4955980
Feat #1130 [WIP] Adding support for downloading and zipping files (#1501)
* Feat #1130 Adding support for downloading and zipping files

@ This is a combination of 12 commits.
 - Feat #1130 Initial Commit
 - Feat #1130 Adding support for hierachical lists
 - Feat #1130 [WIP] Adding support for downloading and zipping files
 - Feat #1130 Adding support for hierarchical folder structure study, series, instances on generated zip file
 - Feat #1130 Adding unit tests and addressing code review feedbacks
 - Feat #1130 POC (adding module to support on progress handling)
 - Feat #1130 Improving logic from progress tracking utils
 - Feat #1130 Renaming module with progress tracking utils
 - Feat #1130 Beta version of Progress Tracking utils
 - Feat #1130 Adding unit tests for Progress Tracking Utils
 - Feat #1130 Documenting public methods from progress tracking utils module
 - Feat #1130 Adding support for download and zip progress reporting

* Feat #1130 Addressing code review feedback

* Feat #1130 Preventing multiple downloads from executing at once

* Feat #1130 Improving error message for concurrent downloads

* Remove downloadAndZipSeriesOnViewports

Co-authored-by: James Petts <jamesapetts@gmail.com>
2020-04-15 17:57:57 +01:00
Nisal Upendra
2412c08595
docs: Embedding in existing react App (#1626)
Added how to embed OHIF viewer in an existing React application
2020-04-10 08:28:37 -04:00
ohif-bot
d769e5c296 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.3.11
 - @ohif/core@2.6.10
 - @ohif/viewer@3.8.20
2020-04-09 11:08:07 +00:00
Danny Brown
d21af3f133
fix: Revert "refactor: Reduce bundle size (#1575)" (#1622)
This reverts commit 81dcbe294d.
2020-04-09 07:06:41 -04:00
ohif-bot
70672ed663 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.5.2
 - @ohif/extension-dicom-rt@0.0.2
 - @ohif/extension-dicom-segmentation@0.1.2
 - @ohif/extension-vtk@1.3.10
 - @ohif/core@2.6.9
 - @ohif/ui@1.4.3
 - @ohif/viewer@3.8.19
2020-04-09 10:25:11 +00:00
Igor Octaviano
858484f250
Support of RTSTRUCT visualization (#1524)
* Filter segs and fetch correct metadata.

* Initiate seg loading logic on series load into viewport. Need to write.

* Automatic consumption of SEG functional.

* Pull in master.

* Fix issues after pulling in master.

* Clean up old segmentation handlers.

* WIP

* WIP

* Poppulate viewport with metadata.

* Show hide/segmentation in react-vtkjs-viewport.

* feat: 🎸 View segmentations in vtkjs viewport

* Filter segs and fetch correct metadata.

* Initiate seg loading logic on series load into viewport. Need to write.

* Automatic consumption of SEG functional.

* Pull in master.

* Fix issues after pulling in master.

* Clean up old segmentation handlers.

* WIP

* WIP

* Poppulate viewport with metadata.

* Show hide/segmentation in react-vtkjs-viewport.

* feat: 🎸 View segmentations in vtkjs viewport

* Rebase on master.

* format format format

* add basic extension parts

* Updated yarn lock

* Fetch derived/referenced displaysets in sidepanel

* Add buttons, expose seriesDescription, write notes for Danny.

* Add growcut tool extention. -> Move to a seperate repo.

* Change some text fields.

* expose dialog provider

* hide draggable area

* No pointer events for now; need to revisit

* Don't filter seg from the outset for now

* fiddling about

* fix path to series data

* fix logic to determine next available labelmapindex

* Ability to swtich between labelmaps

* Return a promise so we can make sure our labelmap is loaded before pulling metadata

* Better UI to toggle labelmaps

* Fix accidental untoggle of active labelmap for ui

* Remove brush tool from cornerstone extension

* Add cstools in preInit for seg extension

* Add buttons for seg magic

* Hide the measurements panel for now

* Slightly better seg/scissor icons

* Add eraser

* ability to switch segments

* seg color / switcher

* Fix vtk labelmap cache.

* sidepanel should scroll if there's overflow

* Use a fancier range slider

* Slightly prettier buttons

* Push in progress

* A bit more reactive; handle no-meta

* Update to vtk.js 11.14.0 and react-vtkjs-viewport 0.6.0

* chore: kickstart preview

* Fix conflict issues

* Refactor panel

* Isolate increment functions

* Wip segment table

* Hide selector and add scroll to segmentation

* Increase width of segment description

* Hide not used items

* Add new select for segmentations

* Align ui

* Fix default segmentation

* Fix broken import test

* Get measurements panel back and add spacing to grouped buttons

* Hide brush and selector and refresh when switching segmentations

* Add pointer events back and fix broken tests for measurement table

* Update segment list when switching humbnails

* CR Update: Minor UI adjustments

* CR Update: Set active segment

* Move components to components folder

* Add new settings ui

* Integrate configuration

* Improve styles

* Float numbers

* Improve css

* Refresh settings menu if side panel changed

* Fix settings rendering logic and remove comments

* Extract components

* Remove not used tools

* Remove non used extension

* Use style variables and remove comments

* Remove non used dep from lock

* Remove tools

* Remove segmentation from toolbar

* Add todo and brushradius from config

* Fix packagejson growcut import

* Remove webpack config already defined in parent

* Update package json description

* Change component name to british english to us

* Improve prop types

* Rename cornerstone label map event

* Scope css

* Extract and add doc to helper

* Update jsdocs for getDerivedDatasets

* Add proptypes and cr updates

* Update tablistitem proptypes

* config is readonly, rollback destructuring

* Remove event for side panel

* Add jsdocs for util

* Extract getimageid to studymetada

* Use ohif log instead of console

* Remove specific style from side panel

* Fix default props for brush radius

* Descructure configuration props from settings component to avoid invalid props

* Update proptypes to be required (settings)

* Update readme

* Remove commandsmodule

* Get configuration module inside the component

* Set selected segment

* Rename extension and use modality to filter

* Fix for failing tests (#1423)

* hello world

* Finish rebase for Igor.

* Re-fix cornerstoneTools version that got messed up in merge.

* Fix reactivity of isDisabled, write implementation for the SEG panel.

* Nuke yarn.lock to stack CST to 4.12.0

* Remove debugger statements.

* WIP consume RTSTRUCT

* Doc API and add endpoints.

* Rebase on SEG PR.

* Update DICOM Keyword variables.

* Fix metadata vars format

* Add basic RT panel along with configuration

* Wire up configuration with settings component

* Mock structure set tables

* Improve design of settings

* Integrate list of contours

* Extract panel section

* Filter by seriesuid

* Fix slow settings

* Add jump to image

* Fix expandable items

* Improvements and CR update

* CR Update: Remove google config

* CR Update: Remove erase tool test

* CR Update: Remove instance

* CR Update: Fix issue with undefined prop

* CR Update: Update yarn lock

* Hide actions of structure item

Co-authored-by: James A. Petts <jamesapetts@gmail.com>
Co-authored-by: dannyrb <danny.ri.brown@gmail.com>
Co-authored-by: igoroctaviano] <igoroctaviano@users.noreply.github.com>
Co-authored-by: Mirna Silva <mirna.silva@radicalimaging.com>
2020-04-09 11:21:43 +01:00
ohif-bot
83f9478977 chore(release): publish [skip ci]
- @ohif/i18n@0.52.8
 - @ohif/viewer@3.8.18
2020-04-07 08:33:40 +00:00
Erik Ziegler
b5b851ac7c
chore(i18n): Pull latest translations from Locize to obtain French translation (thanks @salimkanoun!) (#1613)
* Pull latest translations from Locize to obtain French translation

* Fix newlines
2020-04-07 10:32:20 +02:00
ohif-bot
e5175bf3e6 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.3.9
 - @ohif/core@2.6.8
 - @ohif/ui@1.4.2
 - @ohif/viewer@3.8.17
2020-04-06 08:45:46 +00:00
Erik Ziegler
8c8f69accb
Add option for setting maximum concurrent metadata requests (@ckedar), show series in panel before their metadata is retrieved (#1576)
* Show series in Study Browser before their metadata is retrieved

* Switch to decreasing for loop after code review (thanks @ckedar!)

* feat: Limit concurrent series metadata requests (#1581)

* Limit concurrent series metadata requests

* Switch to decreasing for loop after code review (thanks @ckedar!)

* Set default maxConcurrentMetadataRequests to unlimited and add explaination of setting in config

Co-authored-by: kedar.netelixir <kedar.choudhary@netelixir.com>
Co-authored-by: Erik Ziegler <erik.sweed@gmail.com>

* Address comments from code review

* Comment out misbehaving test

Co-authored-by: Kedar <ckedar@gmail.com>
Co-authored-by: kedar.netelixir <kedar.choudhary@netelixir.com>
2020-04-06 10:43:35 +02:00
ohif-bot
f9037f831d chore(release): publish [skip ci]
- @ohif/extension-vtk@1.3.8
 - @ohif/core@2.6.7
 - @ohif/viewer@3.8.16
2020-04-02 17:58:41 +00:00
James Petts
9e0bd52c6a
fix: 🐛 Fix multiframe images (#1595)
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-04-02 13:56:53 -04:00
ohif-bot
f1b017dc08 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.3.7
 - @ohif/core@2.6.6
 - @ohif/viewer@3.8.15
2020-04-02 17:32:56 +00:00
Kedar
81dcbe294d
refactor: Reduce bundle size (#1575)
* async load cornerstoneWADOImageLoader chunk

* Lazy initializing of CornerstoneWADIImageLoader - delayed till Viewer creation

* Async loading of react-vtkjs-viewport

* withCornerstone HOC to wrap routes requiring CornerstoneWADOImageLoader initiazation

* removed dead code in comments

* initWeWorkers is no more. Remove al its references.

Co-authored-by: kedar.netelixir <kedar.choudhary@netelixir.com>
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-04-02 13:31:14 -04:00
Pierre-Antoine Ganaye
e09a3d2e93
docs: Remove dead links in docs and improve SOP Class Handler docs (#1593)
* fix docs dead links

* add examples to SOP handler docs
2020-04-02 09:24:49 -04:00
ohif-bot
978a86bf12 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.5.1
 - @ohif/extension-dicom-html@1.1.2
 - @ohif/extension-dicom-microscopy@0.50.9
 - @ohif/extension-dicom-pdf@1.0.3
 - @ohif/viewer@3.8.14
2020-04-02 07:01:58 +00:00
ankitmhn
0139a32213
chore: Switch asyncComponent to React Lazy/Suspense (Closes #1577) (#1582)
* Attempted Lazy load for OHIFCornerStoneViewport

* Converted dicom-(html, microscopy, pdf) & cornerstone extensions to React Lazy components

* Fixed incorrect import from OHIFDicomPDFSopClassHandler to ConnectedOHIFDicomPDFViewer

Co-authored-by: Ankit Mohan <ankit.mohan@live.in>
Co-authored-by: Erik Ziegler <erik.sweed@gmail.com>
2020-04-02 08:59:17 +02:00
ohif-bot
d57158b59d chore(release): publish [skip ci]
- @ohif/extension-dicom-segmentation@0.1.1
 - @ohif/extension-vtk@1.3.6
 - @ohif/core@2.6.5
 - @ohif/viewer@3.8.13
2020-04-01 03:55:23 +00:00
Igor Octaviano
4a7ce1c093
fix: segmentation not loading (#1566)
* Fix bug

* Refactor the state of the component RTPanel
2020-03-31 23:54:02 -04:00
ohif-bot
333677c40e chore(release): publish [skip ci]
- @ohif/extension-dicom-microscopy@0.50.8
 - @ohif/viewer@3.8.12
2020-03-31 13:30:26 +00:00
James Petts
b459b894bd
Sm fix (#1585)
* Fix broken SM viewport.

* fix: 🐛 Fix broken SM viewport
2020-03-31 14:28:11 +01:00
Andrey Fedorov
c5a4860209
update stale.yml to not close IDC related issues (#1573) 2020-03-29 16:10:11 -04:00
ohif-bot
4f79bda7c9 chore(release): publish [skip ci]
- @ohif/viewer@3.8.11
2020-03-26 03:28:31 +00:00
Kedar
7d22bb7d5a
fix: #1312 Cine dialog remains on screen (#1540)
Co-authored-by: kedar.netelixir <kedar.choudhary@netelixir.com>
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-03-25 23:25:04 -04:00
ohif-bot
36822cc6ce chore(release): publish [skip ci]
- @ohif/viewer@3.8.10
2020-03-26 01:47:51 +00:00
Mirna Silva
e676f0b5b5
test: E2E tests for W/L Presets (#1557)
* E2E tests for W/L Presets

* CI Fix
2020-03-25 21:46:28 -04:00
ohif-bot
57de66a65f chore(release): publish [skip ci]
- @ohif/viewer@3.8.9
2020-03-25 17:55:57 +00:00
Kedar
99022f2bac
fix: Load measurement in active viewport. (#1558)
Possible solution for request https://github.com/OHIF/Viewers/issues/1522 ?

Co-authored-by: kedar.netelixir <kedar.choudhary@netelixir.com>
2020-03-25 13:53:47 -04:00
ohif-bot
47b1e2837f chore(release): publish [skip ci]
- @ohif/extension-vtk@1.3.5
 - @ohif/core@2.6.4
 - @ohif/viewer@3.8.8
2020-03-25 17:04:29 +00:00
Kedar
d604ebaffd
fix: disable autoFreeze of immer, even in dev mode (#1560)
Co-authored-by: kedar.netelixir <kedar.choudhary@netelixir.com>
2020-03-25 12:56:46 -04:00
Erik Ziegler
c1a0d3c662
fix: Add support for single entries in SequenceOfUltrasoundRegions. M… (#1559)
* fix: Add support for single entries in SequenceOfUltrasoundRegions. More than one region will need lower-level changes

* Update platform/core/src/utils/metadataProvider/getPixelSpacingInformation.js

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-03-25 12:55:39 -04:00
ohif-bot
16866a47a0 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.3.4
 - @ohif/core@2.6.3
 - @ohif/viewer@3.8.7
2020-03-24 17:13:15 +00:00
Erik Ziegler
77ab0ad9a1
fix: Ensure we take into account pixel spacing fields properly (#1555)
* fix: Ensure we take into account pixel spacing fields properly

* Rename to getPixelSpacingInformation
2020-03-24 18:10:58 +01:00
ohif-bot
1c306dd243 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.3.3
 - @ohif/core@2.6.2
 - @ohif/viewer@3.8.6
2020-03-24 15:19:55 +00:00
Erik Ziegler
404d52fe5c
fix: OverlayPlane module usage for ArrayBuffer, BulkDataURI, and InlineBinary cases, as well as PaletteColor LUTs for ArrayBuffer (i.e. local drag/drop) case (#1546) 2020-03-24 16:18:13 +01:00
ohif-bot
d9a50b6b08 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.3.2
 - @ohif/core@2.6.1
 - @ohif/viewer@3.8.5
2020-03-23 18:34:20 +00:00
Kedar
e41d339f5f
fix: avoid-wasteful-renders (#1544)
* Avoid un-necessary redux state update for frequent actions

* Avoid un-necessary re-render when no change in props

Co-authored-by: kedar.netelixir <kedar.choudhary@netelixir.com>
2020-03-23 14:31:39 -04:00
ohif-bot
e374fe2118 chore(release): publish [skip ci]
- @ohif/viewer@3.8.4
2020-03-19 12:26:24 +00:00
Jack Cosgrove
9feadd3c6d
fix: Only permit web workers to be initialized once. (#1535) 2020-03-19 13:21:20 +01:00
ohif-bot
3b5f71b0be chore(release): publish [skip ci]
- @ohif/extension-vtk@1.3.1
 - @ohif/ui@1.4.1
 - @ohif/viewer@3.8.3
2020-03-17 22:49:26 +00:00
Darren
b269415048
fix: rendering delete button when text is too wide for parent div (#1526) 2020-03-17 18:48:06 -04:00
ohif-bot
c9e421cff3 chore(release): publish [skip ci]
- @ohif/viewer@3.8.2
2020-03-17 18:19:35 +00:00
Mirna Silva
d9999c1ae4
ci: Added verification on Before hook to avoid navigating again to viewer page (#1505)
* Added verification on Before hook to avoid navigating again to viewer page

* Removed unecessary screenshots and duplicated test cases

* Navigation Fix for HTML extension and improved Flip button verification

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-03-17 14:14:04 -04:00
ohif-bot
31ba042121 chore(release): publish [skip ci]
- @ohif/viewer@3.8.1
2020-03-17 13:08:24 +00:00
Anth Lubic
2747effd9e
fix: resolves #1483 (#1527) 2020-03-17 14:05:56 +01:00
ohif-bot
6ed1e47a3d chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.5.0
 - @ohif/extension-dicom-segmentation@0.1.0
 - @ohif/extension-vtk@1.3.0
 - @ohif/core@2.6.0
 - @ohif/ui@1.4.0
 - @ohif/viewer@3.8.0
2020-03-13 19:47:28 +00:00
Igor Octaviano
e8842cf8ae
feat: Segmentations Settings UI - Phase 1 #1391 (#1392)
* Filter segs and fetch correct metadata.

* Initiate seg loading logic on series load into viewport. Need to write.

* Automatic consumption of SEG functional.

* Pull in master.

* Fix issues after pulling in master.

* Clean up old segmentation handlers.

* WIP

* WIP

* Poppulate viewport with metadata.

* Show hide/segmentation in react-vtkjs-viewport.

* feat: 🎸 View segmentations in vtkjs viewport

* Filter segs and fetch correct metadata.

* Initiate seg loading logic on series load into viewport. Need to write.

* Automatic consumption of SEG functional.

* Pull in master.

* Fix issues after pulling in master.

* Clean up old segmentation handlers.

* WIP

* WIP

* Poppulate viewport with metadata.

* Show hide/segmentation in react-vtkjs-viewport.

* feat: 🎸 View segmentations in vtkjs viewport

* Rebase on master.

* format format format

* add basic extension parts

* Updated yarn lock

* Fetch derived/referenced displaysets in sidepanel

* Add buttons, expose seriesDescription, write notes for Danny.

* Add growcut tool extention. -> Move to a seperate repo.

* Change some text fields.

* expose dialog provider

* hide draggable area

* No pointer events for now; need to revisit

* Don't filter seg from the outset for now

* fiddling about

* fix path to series data

* fix logic to determine next available labelmapindex

* Ability to swtich between labelmaps

* Return a promise so we can make sure our labelmap is loaded before pulling metadata

* Better UI to toggle labelmaps

* Fix accidental untoggle of active labelmap for ui

* Remove brush tool from cornerstone extension

* Add cstools in preInit for seg extension

* Add buttons for seg magic

* Hide the measurements panel for now

* Slightly better seg/scissor icons

* Add eraser

* ability to switch segments

* seg color / switcher

* Fix vtk labelmap cache.

* sidepanel should scroll if there's overflow

* Use a fancier range slider

* Slightly prettier buttons

* Push in progress

* A bit more reactive; handle no-meta

* Update to vtk.js 11.14.0 and react-vtkjs-viewport 0.6.0

* chore: kickstart preview

* Fix conflict issues

* Refactor panel

* Isolate increment functions

* Wip segment table

* Hide selector and add scroll to segmentation

* Increase width of segment description

* Hide not used items

* Add new select for segmentations

* Align ui

* Fix default segmentation

* Fix broken import test

* Get measurements panel back and add spacing to grouped buttons

* Hide brush and selector and refresh when switching segmentations

* Add pointer events back and fix broken tests for measurement table

* Update segment list when switching humbnails

* CR Update: Minor UI adjustments

* CR Update: Set active segment

* Move components to components folder

* Add new settings ui

* Integrate configuration

* Improve styles

* Float numbers

* Improve css

* Refresh settings menu if side panel changed

* Fix settings rendering logic and remove comments

* Extract components

* Remove not used tools

* Remove non used extension

* Use style variables and remove comments

* Remove non used dep from lock

* Remove tools

* Remove segmentation from toolbar

* Add todo and brushradius from config

* Fix packagejson growcut import

* Remove webpack config already defined in parent

* Update package json description

* Change component name to british english to us

* Improve prop types

* Rename cornerstone label map event

* Scope css

* Extract and add doc to helper

* Update jsdocs for getDerivedDatasets

* Add proptypes and cr updates

* Update tablistitem proptypes

* config is readonly, rollback destructuring

* Remove event for side panel

* Add jsdocs for util

* Extract getimageid to studymetada

* Use ohif log instead of console

* Remove specific style from side panel

* Fix default props for brush radius

* Descructure configuration props from settings component to avoid invalid props

* Update proptypes to be required (settings)

* Update readme

* Remove commandsmodule

* Get configuration module inside the component

* Set selected segment

* Rename extension and use modality to filter

* Fix for failing tests (#1423)

* hello world

* Finish rebase for Igor.

* Re-fix cornerstoneTools version that got messed up in merge.

* Fix reactivity of isDisabled, write implementation for the SEG panel.

* Nuke yarn.lock to stack CST to 4.12.0

* Remove debugger statements.

* fix: bump cornerstone-tools version to address toFixed issue

* test: force tests for MISTER^MR to navigate to study directly

* test: remove eraser tool test

* test: count is off by one

* test: don't save SR state for the time being

* test: disable more tests

Co-authored-by: James A. Petts <jamesapetts@gmail.com>
Co-authored-by: dannyrb <danny.ri.brown@gmail.com>
Co-authored-by: igoroctaviano] <igoroctaviano@users.noreply.github.com>
Co-authored-by: Mirna Silva <mirna.silva@radicalimaging.com>
2020-03-13 15:45:26 -04:00
ohif-bot
d426b78967 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.4.3
 - @ohif/extension-dicom-html@1.1.1
 - @ohif/extension-dicom-microscopy@0.50.7
 - @ohif/extension-dicom-pdf@1.0.2
 - @ohif/extension-vtk@1.2.24
 - @ohif/core@2.5.3
 - @ohif/i18n@0.52.7
 - @ohif/ui@1.3.3
 - @ohif/viewer@3.7.8
2020-03-09 19:04:54 +00:00
James Petts
1d85f7a74e
Instance metadata/metadata providers overhaul (#1481)
* Instance metadata plus metadata provider overhaul.

Fix consumption of wado-uri urls

fallbacks + datatype agnosticism.

WIP DICOMify things.

fix various issues with naturalized variable naming migration.

Remove metadata provider.

Fix consumption of multiframe images and addition of CWIL metadata.

Fix strange build issues.

Fix CWIL style windowWidth to array from naturalized DICOM.

Fix PT, CT, CR and DX issues for cornerstone + DX issues for vtkjs.

Move color palette fetching down to the natuaralized JSON level.

Remove unused StudyMetadataSummary

Remove redundant dicom metadata dictionary.

Working local + json routes.

Fix SR read.

Finished first round of testing + cleaned up debugging etc.

* data => metadata for instance naturalizedJSON

* Update dcmjs version

* Correct github isssues.

* Fix erroneously replaced files.

* Danny's recommended changes.

* Instance metadata plus metadata provider overhaul.

Fix consumption of wado-uri urls

fallbacks + datatype agnosticism.

WIP DICOMify things.

fix various issues with naturalized variable naming migration.

Remove metadata provider.

Fix consumption of multiframe images and addition of CWIL metadata.

Fix strange build issues.

Fix CWIL style windowWidth to array from naturalized DICOM.

Fix PT, CT, CR and DX issues for cornerstone + DX issues for vtkjs.

Move color palette fetching down to the natuaralized JSON level.

Remove unused StudyMetadataSummary

Remove redundant dicom metadata dictionary.

Working local + json routes.

Fix SR read.

Finished first round of testing + cleaned up debugging etc.

* data => metadata for instance naturalizedJSON

* Update dcmjs version

* Correct github isssues.

* Fix erroneously replaced files.

* Danny's recommended changes.

* Update JSON CI

* Update casing of import.

* Fix jump for SR.

* Fix unit tests for measurements service

* Fix json CI test.

* fix: update yarn lock

* Fix local non-encapsulated pdf view

* CI updated to new sucess message.

Co-authored-by: Danny <danny.ri.brown@gmail.com>
2020-03-09 19:03:23 +00:00
ohif-bot
8833731ad3 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.4.2
 - @ohif/extension-vtk@1.2.23
 - @ohif/ui@1.3.2
 - @ohif/viewer@3.7.7
2020-03-09 13:39:36 +00:00
Danny Brown
bb7cce4716
feat: Remove Eraser
feat: Remove Eraser
2020-03-09 09:36:26 -04:00
Danny Brown
4ad3ab93b0
Merge branch 'master' into fix-toolbar-tools 2020-03-09 09:35:27 -04:00
ohif-bot
3e074da64e chore(release): publish [skip ci]
- @ohif/extension-vtk@1.2.22
 - @ohif/core@2.5.2
 - @ohif/viewer@3.7.6
2020-03-06 09:53:40 +00:00
vicOnGit75
d66bad664a
Fix for correct reading of enableStudyLazyLoad setting (#1333)
Co-authored-by: Rutman <victor.rutman@changehealthcare.com>
Co-authored-by: Erik Ziegler <erik.sweed@gmail.com>
2020-03-06 10:50:16 +01:00
Rodrigo Antinarelli
fa47db4a54
Merge branch 'master' into fix-toolbar-tools 2020-03-05 12:13:53 -03:00
ohif-bot
e1c21a7ce1 chore(release): publish [skip ci]
- @ohif/viewer@3.7.5
2020-03-05 15:08:13 +00:00
Danny Brown
c785a5e975
feat: is disabled flag for sidepanels (#1461)
* chore: updated autofix settings

* chore: remove dead code

* chore: further identify study schema/props

* chore: sketch out beginnings of isDisabled method for sidePanel menuOptions

* chore: set API as studies object

* docs: update docs to include isDisabled computed

* chore: note regarding reactivity

* chore: handle function not set (preserve non-breaking)

* chore: clarify how props are added

* chore: specify left side for built-in series button (thumbnails)

* chore: remove 'from', and push to correct key
2020-03-05 10:05:51 -05:00
Danny Brown
f133be75d1
Merge branch 'master' into feat/is-disabled-flag-for-sidepanels 2020-03-05 09:39:58 -05:00
Rodrigo Antinarelli
b880663818 add ROI Window 2020-03-04 12:57:27 -03:00
Rodrigo Antinarelli
e160889605 add ROI Window 2020-03-04 12:56:04 -03:00
Rodrigo Antinarelli
2f0d1b651b Merge branch 'master' of https://github.com/OHIF/Viewers into fix-toolbar-tools 2020-03-04 12:13:23 -03:00
Rodrigo Antinarelli
d034006294 unremove ROI Window 2020-03-04 12:13:14 -03:00
ohif-bot
2f459a0f64 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.4.1
 - @ohif/viewer@3.7.4
2020-03-03 05:46:36 +00:00
Danny Brown
ee80e02661
fix: bump react-cornerstone-viewport version to address critical issue (#1473) 2020-03-03 00:42:01 -05:00
ohif-bot
4e53fbfe9d chore(release): publish [skip ci]
- @ohif/viewer@3.7.3
2020-03-02 20:45:50 +00:00
Gustavo André Lelis
64dfbeab7a
fix: GCloud dataset picker dialog broken (#1453)
* Replace class with className

* Start implementing UIDialogService

* Including UIModalService on dicomStorePicker

* Cleanup

* Remove unecessary divs

* Remove props not used

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-03-02 15:43:39 -05:00
ohif-bot
9c1112f768 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.2.21
 - @ohif/ui@1.3.1
 - @ohif/viewer@3.7.2
2020-02-29 14:01:25 +00:00
arthur-miller
9b3be9b0c0
fix: prevent the native context menu from appearing when right-clicking on a measurement or angle (https://github.com/OHIF/Viewers/issues/1406) (#1469) 2020-02-29 08:59:47 -05:00
dannyrb
6829542c00 chore: remove 'from', and push to correct key 2020-02-24 11:36:10 -05:00
dannyrb
846c9c1c54 chore: specify left side for built-in series button (thumbnails) 2020-02-24 11:35:34 -05:00
dannyrb
85fed49eb1 chore: clarify how props are added 2020-02-24 11:28:35 -05:00
dannyrb
298da03e2f chore: handle function not set (preserve non-breaking) 2020-02-24 11:22:41 -05:00
dannyrb
141e1cf648 chore: note regarding reactivity 2020-02-24 11:20:10 -05:00
dannyrb
ea2ab1a25e docs: update docs to include isDisabled computed 2020-02-24 11:18:55 -05:00
dannyrb
3d0357c9c0 chore: set API as studies object 2020-02-24 11:16:24 -05:00
dannyrb
f68aaf973c chore: sketch out beginnings of isDisabled method for sidePanel menuOptions 2020-02-21 16:09:55 -05:00
dannyrb
f04d459a63 chore: further identify study schema/props 2020-02-21 16:09:05 -05:00
dannyrb
4cf9f2c9cb chore: remove dead code 2020-02-21 16:08:48 -05:00
dannyrb
c0cc9752c6 chore: updated autofix settings 2020-02-21 16:08:15 -05:00
Rodrigo Antinarelli
2910d38668 Remove E2E test for Eraser tool 2020-02-21 16:56:30 -03:00
Rodrigo Antinarelli
6c950a9669 fix: Remove Eraser and ROI Window 2020-02-21 16:27:32 -03:00
ohif-bot
06075ecb51 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.2.20
 - @ohif/core@2.5.1
 - @ohif/viewer@3.7.1
2020-02-21 02:44:01 +00:00
Igor Octaviano
509a7b7e57
fix: 💡 Update log to warn (#1454)
Update measurement service log to warn

 Closes: #1451
2020-02-20 21:41:01 -05:00
ohif-bot
4bbf24b250 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.4.0
 - @ohif/extension-vtk@1.2.19
 - @ohif/core@2.5.0
 - @ohif/ui@1.3.0
 - @ohif/viewer@3.7.0
2020-02-20 22:04:03 +00:00
Gustavo André Lelis
ebc01a8ca2
feat: #1342 - Window level tab (#1429)
* WindowLevel preset code changes

* Remove localStorage code as its already being saved and some small refactor on reducer/action

* Creating unit tests for preferences reducer

* Fix cypress after class naming change

* Make hidden false as default for tab components

* Remove addUserPreferences

* Small refactor to use commandsManager from getCommandsModule instead of getting it from App.js
2020-02-20 16:25:26 -05:00
ohif-bot
4fd0c6dfcb chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.3.1
 - @ohif/viewer@3.6.3
2020-02-14 20:56:06 +00:00
Gustavo André Lelis
06a4af06fa
fix: Creating 2 commands to activate zoom tool and also to move between displaySets (#1446) 2020-02-14 15:54:08 -05:00
ohif-bot
6cba41dd8b chore(release): publish [skip ci]
- @ohif/extension-vtk@1.2.18
 - @ohif/core@2.4.1
 - @ohif/i18n@0.52.6
 - @ohif/ui@1.2.1
 - @ohif/viewer@3.6.2
2020-02-12 20:36:52 +00:00
Rodrigo Antinarelli
2f30e7a821
fix: Combined Hotkeys for special characters (#1233)
* fix: Combined Hotkeys for special characters

* add record method to hotkey manager

* fix record plugin

* remove unused component

* add record to modal props

* rename record method

* replace handlers to use hotkeyRecord

* fix combined keys

* change expected result count from 18 to 17

* autoformat

* Remove duplicate test, that was testing the wrong things; fix label; update configs

* Revert "Remove duplicate test, that was testing the wrong things; fix label; update configs"

This reverts commit 4292f4fe67351962d61cae623b920dcbd87dd71d.

* Fix the record plugin's registration

* fix exposed record method usage

* adding logging for info level items

* Hotkey definitions don't need to be globally reactive; use localstorage/appconfig as sources of truth; not redux

* Tidy up test

* Remove unused code from UserPreferencesForm

* Log info when we run a command

* fix hotkey preference restore

* use application configured hotkeys if there are no user preferred

* Avoid logging circular ref

* Fix callouts

* Fix small issue with array

* Fix langua issue after refactor and merge

* Refactor on recordCurrentCombo as Rodrigo did before

* Separating components in 2 files

* WIP Refactor to simplify the user preferences and move into each form the save and controll functionalities

* Remove context

* Remove unused import

* Initial work on Field treatment

* Refactor General preferences

* Small refactor removing type from HotkeyField

* small update on style

* Refactor and layout fixed

* Make hotkeys preferences working with old hotkeys row

* Move error handling out of hotkey row/input component

* WIP custom form

* Moving validation function to component

* Exposing hotkeyRecord as it does not depend on HotkeyManager Class

* Making hotkeyField as much detached possible from parent component

* Small refactors

* Refactor on user preferences

* Clean up into the changes

* Small fix to let save working

* Style finish

* move about docs into about folder

* Fix double tap on single keys

* Style refactor

* Remove log

* Fix log issues on unit tests

* Fix unit test breaking on ohif/core index

* Fixing hotkeys unpause unit test issue

* Rename file to adopt lowercase

* Rename file to adopt lowercase

* Fixing callouts

* Big refactor miving some of the components into viewer and creating small components into ohif/ui

* Typo on folder name

* Updating ohif ui docs

* Remove comments

* Fix binding of combo keys

* Fix some cypress tests failures

* Fixing onCancel button

* Fixing e2e tests

* Small style update

* Fixing unit tests failing after fix issue

* Remove some not used code

* Remove left over after debug

* Adding prevent default on hotkeys events

* Fixinf existing hotkeys validator with 3 keys pressed

* Exposing hotkeys as root level on ohif-core

* Clean up

* Exposing all availableLanguages with labels and fixing an issue on language switcher

* Fixing e2e cypress tests

* Preveinting some simple errors

* Treating error once we try to set hotkey definitions

* Adding ui notification on setHotkeys errors

* Implementing a service queue request to hold until functions are implemented

* Making sure toFixed is only called on Numbers

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
Co-authored-by: Gustavo André Lelis <galelis@gmail.com>
2020-02-12 15:35:04 -05:00
ohif-bot
9a62c28b3f chore(release): publish [skip ci]
- @ohif/extension-lesion-tracker@0.2.0
 - @ohif/extension-vtk@1.2.17
 - @ohif/ui@1.2.0
 - @ohif/viewer@3.6.1
2020-02-10 20:36:28 +00:00
Igor Octaviano
98a649b455
feat: Lesion tracker right panel (#1428)
* WIP

* Finish mock

* Update name, remove vendor prefix

* Remove lesion tracker from defaults

* Refactor measurement table changes

* Remove unused code

* Update naming of collections
2020-02-10 15:33:06 -05:00
ohif-bot
3529474a16 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.3.0
 - @ohif/extension-vtk@1.2.16
 - @ohif/core@2.4.0
 - @ohif/viewer@3.6.0
2020-02-10 19:17:19 +00:00
Igor Octaviano
0c37a406d9
feat: 🎸 MeasurementService (#1314)
* feat: 🎸 MeasurementService

Work in progress...

* Remove cornerstone tools import

* Second iteration

* CR Update: Add update / added events example

* Add new props to measurements

* Update event log

* Add new measurementid to annotation

* Add context support

* Add value types

* Add area

* Add todo

* Wip measurement to annotation map

* Change points representation

* Add props to annotation mapping

* Add tests

* Extract formatter from init and add tests

* Sketch matchers

* Fix events and valuetypes imports

* Remove context support

* Rename formatter to mappings

* Sketching source and source definitions

* Adjust matching criteria in addOrUpdate

* CR Updates: Extract private functions and rename variables

* Fix broken tests

* Add more measurement service tests

* Update broken mapping tests

* Update test description

* Update getAnnotation to get mapping based on def and source

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-02-10 14:15:05 -05:00
ohif-bot
e8d56c11f0 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.2.15
 - @ohif/core@2.3.9
 - @ohif/viewer@3.5.1
2020-02-07 16:11:02 +00:00
Erik Ziegler
a6b92a4505
Fix issues with isDisplaySetReconstructable when we have empty DICOM tags (closes #1280) (#1426) 2020-02-07 17:09:37 +01:00
ohif-bot
a4c9a86772 chore(release): publish [skip ci]
- @ohif/extension-lesion-tracker@0.1.0
 - @ohif/viewer@3.5.0
2020-02-06 19:07:34 +00:00
Danny Brown
73e440968c
feat: lesion-tracker extension (#1420)
* chore: init lesion-tracker extension

* chore: dev build for lesion-tracker extension

* fix: a more appropriate library name

* chore: fix script naming
2020-02-06 14:04:18 -05:00
ohif-bot
3f7eb8a5d3 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.2.14
 - @ohif/core@2.3.8
 - @ohif/viewer@3.4.14
2020-02-06 02:56:29 +00:00
Gustavo André Lelis
7b2d44f2c1
fix: Remove trash data from redux storage after updates (#1358)
* Remove tash data from redux storage after updates

* Imprelemnted more unit tests

* Remove missing comment

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-02-05 21:54:57 -05:00
ohif-bot
225da81135 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.2.13
 - @ohif/core@2.3.7
 - @ohif/viewer@3.4.13
2020-01-30 18:33:22 +00:00
Rodrigo Antinarelli
686d12da5c
fix: Set VTK viewport as active by interaction (#1139)
* fix: Set VTK viewport as active by interaction

* feat: listen for vtkscrollevent in wrapper component

* fix: definitions can skip empty storeContexts key

* hoc to set/pass in commandsManager

* Bump minimum react-vtkjs-viewport version to leverage new event

* Simplify to use onScroll event instead of passing down commandsManager to base component

* fix: make sure we include @JamesAPetts bug fix

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-01-30 13:26:06 -05:00
ohif-bot
c22756051b chore(release): publish [skip ci]
- @ohif/viewer@3.4.12
2020-01-30 03:46:42 +00:00
Moritz Ulrich
8fdfcc0c7d
chore: Remove unused dependency on favicons-webpack-plugin. (#1351)
This dependency depends on the `favicons` library which depends on
`sharp` which depends on a native library.

This complicates the build process as the library is built from source
because there's no binary available for my macOS Catalina
installation. As this is a common developer setup I expect others to
run into this issue as well, which is why I opted to fix this issue.

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
Co-authored-by: Erik Ziegler <erik.sweed@gmail.com>
2020-01-29 22:43:15 -05:00
ohif-bot
44ab65c981 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.2.12
 - @ohif/i18n@0.52.5
 - @ohif/ui@1.1.9
 - @ohif/viewer@3.4.11
2020-01-30 03:42:31 +00:00
Rodrigo Antinarelli
b9574b6efc
fix: download tool fixes & improvements (#1235)
* fix: download tool fixes & improvements

* fix filename error

* Create variable to track erros

* Fix small console error

* Fix all conflicts and merge changes from latest master with this PR's improvements

* Small improvement on select and textinput labels

* Add new icon for unlink

* Refactor on download image modal

* Adding loading screen

* Fix translation issue

* Fixing aspect Ratio and E2E tests

* Allow empty value without setting to 0

* Remove eslint comments

* Fixing typos

Co-authored-by: Gustavo André Lelis <galelis@gmail.com>
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-01-29 22:39:44 -05:00
ohif-bot
96a8e26786 chore(release): publish [skip ci]
- @ohif/viewer@3.4.10
2020-01-28 21:32:03 +00:00
Mirna Silva
80f5b23622 test: 1316 - E2E tests for /local (#1379)
* 1316 - E2E tests for /local

* fix test title

* update yarn.lock

* Increased timeout for thumbnails

* Removing PDF file test from script-tag server

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-01-28 16:29:17 -05:00
ohif-bot
2b4950e954 chore(release): publish [skip ci]
- @ohif/viewer@3.4.9
2020-01-28 19:18:20 +00:00
dependabot[bot]
e16f14089d chore(deps-dev): bump lodash from 4.17.11 to 4.17.15 in /platform/viewer (#1403)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.11 to 4.17.15.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.15)

Signed-off-by: dependabot[bot] <support@github.com>
2020-01-28 14:15:59 -05:00
Danny Brown
c3807a89ed
chore: exclude extension discussion 2020-01-28 12:46:05 -05:00
Danny Brown
049ef4a666
chore: scare away stale bot 2020-01-28 12:43:07 -05:00
ohif-bot
d5fa880a29 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.2.11
 - @ohif/core@2.3.6
 - @ohif/viewer@3.4.8
2020-01-28 14:03:08 +00:00
Erik Ziegler
1b9a6db73f
Handle Palette Color images where LUT has been returned as InlineBinary (#1350) (#1401) 2020-01-28 15:01:13 +01:00
ohif-bot
ed2692908e chore(release): publish [skip ci]
- @ohif/viewer@3.4.7
2020-01-28 12:54:21 +00:00
Joël Spaltenstein
0c6c5a5d51 OIDC Initiating Login from a Third Party
https://openid.net/specs/openid-connect-core-1_0.html#ThirdPartyInitiatedLogin
2020-01-28 13:50:54 +01:00
ohif-bot
b449f8eb0e chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.2.2
 - @ohif/extension-vtk@1.2.10
 - @ohif/core@2.3.5
 - @ohif/viewer@3.4.6
2020-01-28 12:41:49 +00:00
Erik Ziegler
cf5160fb13
Add DICOM Group 6xxx Overlay Plane rendering (#1402)
* Add DICOM Group 6xxx Overlay Plane rendering

* Bump to cornerstone-tools 4.12.0 to support DICOM 6xxx Overlays
2020-01-28 13:40:03 +01:00
ohif-bot
4c1c91c006 chore(release): publish [skip ci]
- @ohif/viewer@3.4.5
2020-01-27 16:10:06 +00:00
Mirna Silva
9ed39c149b chore: Removing dependency ffmpeg-installer (#1397)
Fixes FOSSA warning/failure
2020-01-27 11:06:51 -05:00
ohif-bot
b3f0fe029d chore(release): publish [skip ci]
- @ohif/extension-vtk@1.2.9
 - @ohif/core@2.3.4
 - @ohif/viewer@3.4.4
2020-01-27 09:14:56 +00:00
Erik Ziegler
a1b78afdb9
Add palette color cache object back to core (fix #1350) (#1395) 2020-01-27 10:12:07 +01:00
Mirna Silva
3d3cfb1b41
Merge pull request #1393 from mirnasilva/fix_NewPatientSaveMeasurement
Fix on CI - Choosing another Patient Study
2020-01-24 16:17:10 -03:00
Mirna Silva
b812fe03d2 Fix on CI - Changing to another Patient Study 2020-01-24 15:56:25 -03:00
ohif-bot
84f087bca4 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.2.8
 - @ohif/core@2.3.3
 - @ohif/viewer@3.4.3
2020-01-24 10:33:21 +00:00
Igor Octaviano
a7e612eb88 refactor: 💡 Clean up JSON launch with DICOMWeb server (#1388)
* refactor: 💡 Clean up JSON launch with DICOMWeb server

Clean up JSON launch with DICOMWeb server

 Closes: #1387

* Remove test file

* parse seriesinstanceuids in query

* Add default studies

* Remove test file

* Cleanup retrievedata changes

* Set active server
2020-01-24 10:31:22 +00:00
Mirna Silva
9e3afda2f1
Merge pull request #1384 from mirnasilva/percy-ci-fix
Visual tests: Fixed ci config for visual tests (percy)
2020-01-20 11:13:24 -03:00
Mirna Silva
4d7a91a584
Merge branch 'master' into percy-ci-fix 2020-01-17 20:48:51 -03:00
Mirna Silva
1dc320edcd Fixed ci config for visual tests 2020-01-17 20:44:45 -03:00
ohif-bot
1d02f5485f chore(release): publish [skip ci]
- @ohif/viewer@3.4.2
2020-01-17 22:45:01 +00:00
Mirna Silva
4c9a977920
Merge pull request #1382 from OHIF/mirna/test/visual-tests
Percy fix for CI failure
2020-01-17 19:43:19 -03:00
Mirna Silva
b5db09c25e
Merge pull request #1383 from mirnasilva/percy-ci-fix
Percy ci fix
2020-01-17 19:14:16 -03:00
Mirna Silva
8dc4a5b82a Merge branch 'percy-ci-fix' of https://github.com/mirnasilva/Viewers into percy-ci-fix 2020-01-17 16:36:08 -03:00
Mirna Silva
44add9ce2f Fix for save measurements failure 2020-01-17 16:35:26 -03:00
Mirna Silva
c19eceeede
Merge pull request #1381 from mirnasilva/percy-ci-fix
Percy tests - fix for CI failure
2020-01-17 14:46:43 -03:00
Mirna Silva
72bc5a5ae5
Merge branch 'master' into percy-ci-fix 2020-01-17 14:45:13 -03:00
Mirna Silva
dfdf46dbdd fix for CI failure 2020-01-17 14:31:53 -03:00
ohif-bot
571dff2c09 chore(release): publish [skip ci]
- @ohif/viewer@3.4.1
2020-01-15 14:16:43 +00:00
Gustavo André Lelis
b9a66d4424 fix: 🐛 Metadata is being mistakenly purged (#1360)
Closes: #1326
2020-01-15 09:15:10 -05:00
ohif-bot
7ab2e3e60d chore(release): publish [skip ci]
- @ohif/viewer@3.4.0
2020-01-14 15:26:35 +00:00
mukhlin
a5d6bc6a51 feat: Custom Healthcare API endpoint (#1367)
* Add ability to configure Google Cloud Healthcare API endpoint.

* Fixed bug in script.

* Fixed PR remark.

* Set Healthcare API endpoint in proper place.
2020-01-14 10:22:53 -05:00
ohif-bot
df612ca4a0 chore(release): publish [skip ci]
- @ohif/viewer@3.3.8
2020-01-10 18:00:27 +00:00
Mirna Silva
a91ce57c43
Merge pull request #1363 from OHIF/task/improveVisualTest
Task/improve visual tests. Related to PR #1327
2020-01-10 14:57:33 -03:00
Mirna Silva
342884f83e
Merge pull request #1327 from mirnasilva/1320_ImproveVisualRegression
E2E test: Percy visual regression improvements
2020-01-10 14:30:01 -03:00
Mirna Silva
0fb39bad84 Changes on config file 2020-01-10 14:18:20 -03:00
Mirna Silva
c74c80bb6f Fix for VTK test 2020-01-09 16:46:29 -03:00
Mirna Silva
910d5c65d5 Changing RELEASE config to run only percy tests 2020-01-09 16:17:22 -03:00
Mirna Silva
d0fb4843ab Changing screenshot paths back to original 2020-01-09 15:29:39 -03:00
Mirna Silva
f488b857fe Merge branch '1320_ImproveVisualRegression' of https://github.com/mirnasilva/Viewers into 1320_ImproveVisualRegression 2020-01-09 14:50:40 -03:00
Mirna Silva
256e8b1116
Merge branch 'master' into 1320_ImproveVisualRegression 2020-01-09 14:49:42 -03:00
Mirna Silva
168dd87747 Merge branch 'master' of https://github.com/mirnasilva/Viewers into 1320_ImproveVisualRegression 2020-01-08 15:21:43 -03:00
ohif-bot
13c41e6d86 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.2.7
 - @ohif/ui@1.1.8
 - @ohif/viewer@3.3.7
2020-01-08 13:48:10 +00:00
barhantas
7ab0bbb325 fix: measurements panel css and delete button visibility (#1352)
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2020-01-08 08:43:30 -05:00
ohif-bot
2213187b14 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.2.6
 - @ohif/viewer@3.3.6
2020-01-07 22:44:05 +00:00
Maher Jendoubi
4c4d8a61b6 chore: Fix a typo (#1353) 2020-01-07 17:41:16 -05:00
Mirna Silva
67f58f5f09 Added dependency ffmpeg-installer 2020-01-07 19:09:04 -03:00
Mirna Silva
dfc35885bb Changed record to false 2020-01-07 18:28:16 -03:00
Mirna Silva
e9c449d1db Changed path for cypress/videos 2020-01-07 18:07:20 -03:00
Mirna Silva
6dac50c7c6 Improvements on VTK visual tests 2 2020-01-07 17:23:35 -03:00
Mirna Silva
9be54f6164 Improvements on VTK visual tests 2020-01-07 16:52:28 -03:00
Mirna Silva
341cc5a4eb
Merge branch 'master' into 1320_ImproveVisualRegression 2020-01-06 19:07:20 -03:00
Mirna Silva
7b80171203 Removing unnecessary screenshots 2020-01-06 18:54:09 -03:00
ohif-bot
2e5a385e53 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.2.5
 - @ohif/core@2.3.2
 - @ohif/viewer@3.3.5
2020-01-06 21:29:37 +00:00
Danny Brown
a3caeb381e
chore: remove unused file; duplicated by studyInstanceHelpers (#1349)
* chore: remove unused file; duplicated by studyInstanceHelpers

* Change expected study list results num
2020-01-06 16:26:57 -05:00
Mirna Silva
ab0af86379 Merge branch '1320_ImproveVisualRegression' of https://github.com/mirnasilva/Viewers into 1320_ImproveVisualRegression 2020-01-06 17:09:24 -03:00
Mirna Silva
86426cb024 Changed command CI line for diff test paths 2020-01-06 17:08:00 -03:00
Mirna Silva
348840ef26 Merge branch 'master' of https://github.com/mirnasilva/Viewers into 1320_ImproveVisualRegression 2020-01-06 16:20:11 -03:00
Mirna Silva
52ef934961
Merge branch 'master' into 1320_ImproveVisualRegression 2020-01-06 14:48:30 -03:00
ohif-bot
be995f93b6 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.2.4
 - @ohif/core@2.3.1
 - @ohif/viewer@3.3.4
2019-12-30 20:01:54 +00:00
Danny Brown
5036615e00
chore: throw our error if we encounter one (no swallow) (#1337) 2019-12-30 14:53:39 -05:00
Mirna Silva
4ee2b135a7 Added more tests and updated CI config.yml 2019-12-24 01:17:02 -03:00
Mirna Silva
388fe04e09 E2E test: Percy visua regression improvements 2019-12-23 23:10:55 -03:00
Gustavo André Lelis
2e215aed4c test: 💍 Updating tests after bug fix (#1324)
Closes: #1167
2019-12-20 19:14:07 -05:00
ohif-bot
ffd27d6db4 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.2.1
 - @ohif/extension-vtk@1.2.3
 - @ohif/viewer@3.3.3
2019-12-20 21:01:26 +00:00
Gustavo André Lelis
6540e36818 fix: 🐛 1241: Make Plugin switch part of ToolbarModule (#1322)
* fix: 🐛 Make Plugin switch part of ToolbarModule

Closes: #1241

* Move setCornerstoneViewport command into cornerstone extension

* Exposing extensionManager into extension's get modules functions

* Remove Plugin switch

* Updating set cornerstonelayout to work on VIEWER context

* Creating a customComponent for 2D MPR button

* Use extensionManager to show or not buttons
Adding isHidden option into toolbarModules

* Make buttons hidden depending on extension registration

* Fix unit test after changes on extensionManager

* Remove workaround for extensionManager

* Use studyMeatadataManager and remove TODO's

* Remove storeContext not needed

* Moving Exit 2D MPR into cornerstone extension with VTK context

* Remove PluginSwitch files

* Fix E2E tests

* Adding cypress screenshots into gitignore

* Remove extensionManager from getModuleFn functions and moving CustomComponent for VTK button to VTK extension

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2019-12-20 15:59:36 -05:00
ohif-bot
a436436def chore(release): publish [skip ci]
- @ohif/extension-vtk@1.2.2
 - @ohif/ui@1.1.7
 - @ohif/viewer@3.3.2
2019-12-20 19:10:48 +00:00
Mirna Silva
d6d92afbda test: Refactoring toolbar data-cy selectors (#1323) 2019-12-20 14:07:00 -05:00
ohif-bot
e1142910e4 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.2.1
 - @ohif/ui@1.1.6
 - @ohif/viewer@3.3.1
2019-12-20 18:57:38 +00:00
Mirna Silva
067e6c769b test: Save Measurements Functionality (#1300)
* E2E Tests: Save Measurements Functionality

* Moving test file to PWA only. Script-tag doesn't have the required Study

* Removing data-cy selector from cornerstone toolbar
2019-12-20 13:54:59 -05:00
ohif-bot
d375d02a4b chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.2.0
 - @ohif/extension-vtk@1.2.0
 - @ohif/core@2.3.0
 - @ohif/viewer@3.3.0
2019-12-20 17:18:56 +00:00
Igor Octaviano
63594d36b0 feat: 🎸 Configuration so viewer tools can nix handles (#1304)
* feat: 🎸 Configuration so viewer tools can nix handles

Adds a key to cornerstone configuration that allows to toggle on/off
handle rendering

Closes: #1223

* Update extension docs

* Update doc

* docs: include hideHandles configuration in our configuration docs

* chore: default to hiding handles for annotations

* chore: switch to drawHandlesOnHover to mimic legacy viewer functionality

* Flip logic for drawHandlesOnHover; reverse of hideHandles

* Don't hide the handles of ellipse or rectangle roi

* invert check

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
2019-12-20 12:15:40 -05:00
ohif-bot
6c160f517f chore(release): publish [skip ci]
- @ohif/extension-vtk@1.1.7
 - @ohif/ui@1.1.5
 - @ohif/viewer@3.2.2
2019-12-19 15:15:49 +00:00
Gustavo André Lelis
23305cec9c fix: 🐛 Fix drag-n-drop of local files into OHIF (#1319)
* fix: 🐛 Fix drag-n-drop of local files into OHIF

Closes: #1307

* CR Update: Centralize dialogs
2019-12-19 10:14:05 -05:00
ohif-bot
36a741f0bc chore(release): publish [skip ci]
- @ohif/extension-vtk@1.1.6
 - @ohif/core@2.2.1
 - @ohif/viewer@3.2.1
2019-12-18 18:29:28 +00:00
Igor Octaviano
695ad732e1 refactor: 💡 Move DICOMSR code to @ohif/core project (#1310)
* Move DICOMSR to @ohif/core

* refactor: 💡 Move DICOMSR code to @ohif/core project

We've just merged support for DICOM Structured Reports. Today, support
for this feature lives in the @ohif/viewer project in it's lib folder.
Ideally, it should be moved to @ohif/core and given a clear public API
and unit tests.

Closes: #1282

* Update imports

* CR Update: Update imports
2019-12-18 13:25:53 -05:00
ohif-bot
73a3f07e2b chore(release): publish [skip ci]
- @ohif/extension-vtk@1.1.5
 - @ohif/core@2.2.0
 - @ohif/viewer@3.2.0
2019-12-16 19:11:59 +00:00
Igor Octaviano
4ea239a953 feat: 🎸 Expose extension config to modules (#1279)
* feat: 🎸 Expose extension config to modules

Currently, only the preRegistration hook receives the extension's
configuration as a parameter. Providing getModuleFn's with the
extension's configuration, and all lifecycle/modules with the
application's configuration as rootConfig should open the doors to more
configurable extensions.

Closes: #1268

* CR Update: Pass extension and service config through extension manager preinit/getmodule

* CR Update: Remove appConfig from servicesManager

* CR Update: Remove appconfig variable
2019-12-16 14:07:53 -05:00
ohif-bot
625d5d70a7 chore(release): publish [skip ci]
- @ohif/viewer@3.1.12
2019-12-16 18:30:12 +00:00
Igor Octaviano
5c3d8b37b6 fix: 🐛 Dismiss all dialogs if leaving viewer route #1242 (#1301)
* fix: 🐛 #1242

Dismiss all dialogs if route change

Closes: #1242

* CR Update: Dismiss dialogs in videwer
2019-12-16 13:26:31 -05:00
ohif-bot
8bbbf3a889 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.1.1
 - @ohif/viewer@3.1.11
2019-12-16 16:49:50 +00:00
arthur-miller
d5bf72851a fix: 🐛 add WwwcRegionTool to cornerstone tools initialization (#1302) 2019-12-16 11:47:02 -05:00
ohif-bot
2914c83032 chore(release): publish [skip ci]
- @ohif/extension-dicom-pdf@1.0.1
 - @ohif/viewer@3.1.10
2019-12-16 16:13:00 +00:00
Igor Octaviano
31e542dfd9 fix: 🐛 Update ohif pdf extension to optionally use pdfjs (#1162)
* fix: 🐛 Update ohif pdf extension to optionally use pdfjs

Update ohif pdf extension of optionally use pdfjs

Closes: #1049

* Update branch and fix scrolling

* Dynamically import component

* Fix wrong file change

* Fix import

* Add multi opened pdf configuration

* Refactor connected component

* Specify worker explicitly

* Specify worker explicitly

* CR Update: Remove dead code

* CR Update: Refactor state

* CR Update: use refs

* CR Update: use refs
2019-12-16 11:10:10 -05:00
ohif-bot
25599a2e2a chore(release): publish [skip ci]
- @ohif/i18n@0.52.4
 - @ohif/viewer@3.1.9
2019-12-16 15:13:14 +00:00
Danny Brown
1cf7015511
docs: stub environment variables docs 2019-12-16 09:47:12 -05:00
Igor Octaviano
756f70cc54 refactor: 💡 Use env variables to set locize (#1299)
Instead of relying in dynamic configuration, use dedicated env variables
to set locize api key / configuration

Closes: #1271
2019-12-16 09:41:41 -05:00
ohif-bot
ded2e61913 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.1.4
 - @ohif/core@2.1.1
 - @ohif/ui@1.1.4
 - @ohif/viewer@3.1.8
2019-12-16 14:28:33 +00:00
Igor Octaviano
b58aa4575a refactor: Remove LabelingFlow/ContextMenu services and reimplement on top of the Dialog service #1264 (#1292)
* Remove ContextMenu and Labelling services and provider to use DialogService directly

* Refactor init to display labelling

* Cleanup labelling flow in measurements init

* Cleanup viewer imports

* Add classname to toolcontextmenu

* Add error message
2019-12-16 09:19:40 -05:00
Danny Brown
f78abe2afa
docs: stub viewer configuration 2019-12-16 09:15:10 -05:00
Danny Brown
f48157117f
docs: hide empty pages 2019-12-16 09:00:24 -05:00
Danny Brown
6f8bd0dff8
docs: fix scope of diagram path 2019-12-16 08:57:43 -05:00
ohif-bot
943af89df2 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.1.3
 - @ohif/ui@1.1.3
 - @ohif/viewer@3.1.7
2019-12-13 15:14:42 +00:00
Danny Brown
cd2da349e5
fix: allow empty values for dimensions (#1295)
* fix: allow empty values for dimensions

* fix: consistently use `defaultSize` for intial values
2019-12-13 10:09:18 -05:00
ohif-bot
14e86dcddd chore(release): publish [skip ci]
- @ohif/viewer@3.1.6
2019-12-13 04:45:56 +00:00
Danny Brown
2c8b93656d
ci: fix webgl e2e test failures (only on CI) (#1296)
* ci: update executor and browser flag for circleci orbs

* ci: browser flag when running percy/ci tests

* ci: limit ourselves to the executors defined by the cypress orb for now
2019-12-12 23:43:22 -05:00
ohif-bot
6932468206 chore(release): publish [skip ci]
- @ohif/viewer@3.1.5
2019-12-13 02:19:44 +00:00
Danny Brown
7bc9efb0f5
ci: store cypress videos as artifacts; make sure we upload them to dashboard
* fix: Set VTK viewport as active by interaction

* chore: upgrade cypress to latest

* Revert "fix: Set VTK viewport as active by interaction"

This reverts commit b6e174c2def9d8f688a54d32053679788b9aaf76.

* ci: add record flag for master cypress runs

* ci: simplify cypress orb tasks now that cypress@3.8 uses electron w/ chromium 78

* ci: remove video false flag

* ci: drop browser flag

* ci: store video artifacts
2019-12-12 21:17:35 -05:00
ohif-bot
5d47cc43c1 chore(release): publish [skip ci]
- @ohif/viewer@3.1.4
2019-12-13 01:26:39 +00:00
Danny Brown
e46a11a01e
ci: upgrade cypress version (#1293)
* fix: Set VTK viewport as active by interaction

* chore: upgrade cypress to latest

* Revert "fix: Set VTK viewport as active by interaction"

This reverts commit b6e174c2def9d8f688a54d32053679788b9aaf76.

* ci: add record flag for master cypress runs
2019-12-12 20:21:27 -05:00
ohif-bot
27a950d956 chore(release): publish [skip ci]
- @ohif/viewer@3.1.3
2019-12-12 18:11:14 +00:00
Danny Brown
03d4c10adc
chore: remove unused file 2019-12-12 13:08:30 -05:00
Mirna Silva
7a0c369006 test: PT/CT json, studies, series, frames, metadatas (#1145)
* Tests for routes: PT/CT json, studies, series, frames, metadatas

* Fix based on reviews and JSON file for PT/CT Study added

* chore: revert to remote JSON file

* chore: delete PTCTStudy.json file

We can circle back to this approach when/if we have issues. No need to hold-up this PR. My fault on this one.
2019-12-12 01:05:45 -05:00
ohif-bot
8c946a4742 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.1.2
 - @ohif/i18n@0.52.3
 - @ohif/ui@1.1.2
 - @ohif/viewer@3.1.2
2019-12-12 05:54:34 +00:00
Rodrigo Antinarelli
30b9e44220 fix: translations (#1234) 2019-12-12 00:46:58 -05:00
ohif-bot
380abe2705 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.1.1
 - @ohif/ui@1.1.1
 - @ohif/viewer@3.1.1
2019-12-11 16:48:26 +00:00
Mirna Silva
f4570c96c2 tests: Download Image File Modal (#1219)
* E2E Tests: Download Image File Modal

* CI fix

* Fixes for PR comments

* Small change just to check CI behavior

* Fix for CI failure: comparing classes instead of image src

* Fixed Download button test and blocked Download Dialog event

* Deleting file ConnectedViewportDownloadForm.js

This file was not supposed to be created by this PR. It was already deleted by another user on Master branch.

* Removing wrong import line

* Fixes based on PR comments

* Fixes based on PR comments

* test: remove assignment to window
2019-12-11 11:46:10 -05:00
ohif-bot
1fe951a71e chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.1.0
 - @ohif/extension-dicom-html@1.1.0
 - @ohif/extension-vtk@1.1.0
 - @ohif/core@2.1.0
 - @ohif/ui@1.1.0
 - @ohif/viewer@3.1.0
2019-12-11 16:18:54 +00:00
Gustavo André Lelis
ebe1af8d4f feat: 🎸 DICOM SR STOW on MeasurementAPI (#954)
* feat: 🎸 DICOM SR STOW on MeasurementAPI

Closes: #758

* feat: 🎸 Adding the dataExchance from DICOM SR

* feat: 🎸 Fix some issues and get the retrieve measurements working

* feat: 🎸 Preventing measurement tool helpers to broke because the data is not Number (it comes as string from dcmjs)

* feat: 🎸 Adding a button to start testing SATE functionality

* feat: 🎸Small fixes into the code

* feat: 🎸 MAke sure we get latest SR in the study, even on lazyLoad mode

* Revert "feat: 🎸 Preventing measurement tool helpers to broke because the data is not Number (it comes as string from dcmjs)"

This reverts commit 4b3a1efb5810487d2319826fd59c03d779882b5e.

* feat: 🎸 Make sure after sync we update the viewports and also that annotation tools are set to passive, so it can be drawn in the viewports

* feat: 🎸 Remove console logs and start using OHIF.log

* feat: 🎸 Refactor measurement table to use Snackbar service of messages and make sure we only show save button if server type is dicomWeb

* feat: 🎸 Refactor to remove mocked wadoRoot and use server

* Fix to expose error once we can't save the SR

* Update DCMJS into latest dev version

* Update dcmjs with latest fixes

* Fix PR callouts

* Logging error on MeasurementReport creation

* Preventing from breaking on non supported tools and also warning that some toolType is not sopported

* Small error message update

* Expose better the errors and when we have unsopported tools into the measurements

* Renaming variable

* Expose dcmjs tool support check

* Change the way we warn the unsupportedTools

* Adding style to the button

* Small change on button style

* Fix git conflicts

* Fix after merge with latest master

* Fix after merge with master, btn was not clickable

* Fixing callouts

* Adding util functions into files and refactor with JSDocs

* Refactoring code, adding some basic JSDocs

* Bump dcmjs with latest version and fixes

* JSDocs and small refactors

* yarn lock file after dcmjs update

* Remove unused parameters

* Registering a plain copy of server into measurementAPI

* Small refactor

* Start changing from toolType to toolName

* Rename a function to get instanceMetadata

* Adding error if server is not DICOMWeb on retrieve

* Move snackbar outside of UI component and use UINotificationService

* Refactor and JSDocs

* Small fixes on JSDocs (style)

* Remove unused import

* Improve JSDocs on MeasurementApi

* Remove refactor leftover

* Improve JSDocs and propTypes

* JSDocs and small refactors
2019-12-11 11:14:01 -05:00
ohif-bot
5cda5159da chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.0.2
 - @ohif/viewer@3.0.3
2019-12-11 15:41:29 +00:00
Danny Brown
115a3ec0b0
refactor: remove-labelling-manager
Igor/refactor/1267 remove labelling manager
2019-12-11 10:39:36 -05:00
Danny Brown
ac82a111e7
Merge branch 'master' into igor/refactor/1267-remove-labelling-manager 2019-12-11 09:16:18 -05:00
Igor
a22fd67e13 Fix config check in extension init 2019-12-11 06:54:41 -03:00
Danny Brown
91f0af058f
Merge pull request #1278 from OHIF/dannyrb/ci/visual-test
ci: make sure we're updating the base branch for comparisons (percy)
2019-12-10 23:58:53 -05:00
dannyrb
5a1186388d Merge branch 'dannyrb/ci/visual-test' of github.com:OHIF/Viewers into dannyrb/ci/visual-test 2019-12-10 23:52:54 -05:00
dannyrb
2f0f92c095 ci: make sure we're updating the base branch for comparisons (percy) 2019-12-10 23:45:29 -05:00
Danny Brown
5c686268ab
Merge pull request #1274 from OHIF/refactor/igor/1267-remove-labelling-manager
refactor: 💡 Remove LabellingManager and Cleanup LabellingFlow #1267
2019-12-10 23:24:14 -05:00
Danny Brown
974aabc9b2
Merge pull request #1276 from OHIF/dannyrb/ci/visual-test
ci: optional visual test step
2019-12-10 23:12:30 -05:00
Danny Brown
17e3b49b06
Merge branch 'master' into dannyrb/ci/visual-test 2019-12-10 23:08:09 -05:00
dannyrb
e3c119489a cI: Better job name for percy 2019-12-10 23:07:54 -05:00
ohif-bot
17447baf44 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.0.2
 - @ohif/core@2.0.2
 - @ohif/viewer@3.0.2
2019-12-11 03:31:18 +00:00
Igor Octaviano
daa3ddccdb refactor: 💡 ServicesManager factory functions vs instances (#1272)
* refactor: 💡 ServicesManager factory functions vs instances

Refactor servicesManager to take factory functions instead of instances

Closes: #1265

* Remove testing code
2019-12-10 22:28:23 -05:00
dannyrb
c91b6dddd8 ci: optional visual test step 2019-12-10 22:17:21 -05:00
Igor
92548191e4 refactor: 💡 Remove LabellingManager and Clean LabellingFlow
Migrate logic from LabellingManager to LabellingFlow and cleanup
LabellingFlow component

Closes: #1267
2019-12-10 18:31:55 -03:00
Igor
68fcaef19a Cleanup labelling flow 2019-12-10 18:18:37 -03:00
Igor
ef611e4849 Refactoring labellingflow to function component 2019-12-10 18:08:51 -03:00
Igor
d128fd6bf0 Remove LabellingManager component 2019-12-10 17:41:43 -03:00
Igor
3bdd434488 Cleanup LabellingFlow and LabellingManager components 2019-12-10 17:29:40 -03:00
Danny Brown
29bac8df7a
chore: don't mark CI/Tooling tasks as stale 2019-12-10 11:37:39 -05:00
Danny Brown
319c67c389
docs: swap out "always red" badge for viewer-dev.ohif.org badge 2019-12-10 08:57:03 -05:00
Danny Brown
b9836f6c71
docs: templates in P_R_T directory can only be set w/ query string; removing 2019-12-09 22:06:01 -05:00
Danny Brown
6a6e2d7df3
docs: shift pr template up a dir 2019-12-09 22:05:05 -05:00
Danny Brown
2f8c408ed2
docs: contributing guidelines 2019-12-09 22:02:29 -05:00
Danny Brown
27910239e0
docs: code of conduct 2019-12-09 22:00:17 -05:00
ohif-bot
719bfd02eb chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.0.1
 - @ohif/extension-vtk@1.0.1
 - @ohif/core@2.0.1
 - @ohif/ui@1.0.1
 - @ohif/viewer@3.0.1
2019-12-09 18:58:37 +00:00
dannyrb
994818faeb Merge branch 'master' of github.com:OHIF/Viewers into ups-master 2019-12-09 13:55:04 -05:00
dannyrb
f06ef53e83 docs: beginnings of SOPClassHandlerModule docs 2019-12-09 13:53:35 -05:00
ohif-bot
c7008621e4 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.0.0
 - @ohif/extension-vtk@1.0.0
 - @ohif/core@2.0.0
 - @ohif/ui@1.0.0
 - @ohif/viewer@3.0.0
2019-12-09 17:49:51 +00:00
Igor Octaviano
55a580659e feat!: Ability to configure cornerstone tools via extension configuration (#1229)
* Fix ExtensionManager bug and add test to bandaid

* Add tools configuration to extension manager preinit

* Fix reducing of configs

* Merge internal with external configs

* Merge internal with external configs

* Remove dialog from init in measurementstable

* Testing injected configuration

* New way to set config

* Add new prop to dialog provider to allow disabling last position

* Remove code from preinit in cornerstone

* Add new prop to dialog provider to allow disabling last position

* Add centralize to dialogs

* Reorder dialogs when adding them

* Fix draggable styles (cursor)

* Remove repositioning methods from labelling flow and remove overlay from labelling manager

* Fix empty array being set in bringToFront

* Add new command to update table and pass commands manager to modules/preinit hook

* Ad UIContextMenu service / factory

* Use new contextmenu service in measurementspanel extension

* Use dialogs for arrow annotate in default

* Remove positioning funcionality from tool context menu

* Add context menu service

* Pass commandsModule to extension

* Update edit description dialog and simple dialog to position relative

* Remove style code from labelling flow and manager

* Remove eventdata from labelling

* Remove labelling code from measurement init

* Add commandsmanager to provider

* Update contextmenu provider and service

* Add touchstart and mouseclick to hide contextmenu

* Hide labelling if click/touch

* Remove labelling and context menu dead code

* Fix undefined bug if ViewerMain grid has no children

* Fix broken prop on context menu

* Update commandsmodule based on master

* Fix broken configuration

* Update script tag config

* Remove cornerstone from toolcontextmenu

* Remove cornerstone from toolcontextmenu

* Split labelling and context menu providers

* Split labelling and context menu providers

* Update test

* Destructure extensions into new array

* CR Update: Move default arrow config to cornerstone instead of default

* CR Update: Fix app configuration props structure

* CR Update: Fix app configuration prop in script tag and extract commands manager from providers

* CR Update: Create custom providers to use commandsManager

* CR Update: Use services directly in measurementspanel

* CR Update: Pass components to providers

* CR Update: Remove position from dialog

* CR Update: fix dialog prop check

* CR Update: Fix comments

* CR Update: Update documentation

* CR Update: Add test default configuration

* CR Update: Add default empy array to extensions

* CR Update: Update i18n configuration all ot match current function configuration

* CR Update: Add defaults to injected dependencies in configuration and extension configuration

* CR Update: Add defaults to configuration with no args

* Update documentation

* CR Update: Add default for tools

* CR Update: Update config object to i18n

* CR Update: spread defaults

* CR Update: Add tool configuration example to cornerstone extension

* CR Update: Add tool configuration to netlify (testing)

* CR Update: Remove netlify config for tools

* CR Update: Rollback changes to i18n to be fixed later

* CR Update: Update documentation and pass whole cornerstone config object instead of tools key

SEE: https://www.conventionalcommits.org/en/v1.0.0/#commit-message-with-both-and-breaking-change-footer

BREAKING CHANGE: modifies the exposed react <App /> components props. The contract for providing configuration for the app has changed. Please reference updated documentation for guidance.
2019-12-09 12:47:23 -05:00
dannyrb
fd7620ced9 docs: add command behaviors to disambiguate situations in which commands may behave unexpectedly 2019-12-09 10:15:06 -05:00
dannyrb
cd1cbf0f85 docs: fix GitHub table formatting issue 2019-12-09 09:56:17 -05:00
dannyrb
08055398de docs: commands module docs 2019-12-09 09:52:13 -05:00
dannyrb
f6db7fade6 docs: basic viewport docs 2019-12-09 01:02:02 -05:00
dannyrb
58d2bf1d12 test: consistent pre-amble for panel docs 2019-12-09 00:44:43 -05:00
dannyrb
87f5eca659 docs: gif of nested buttons 2019-12-09 00:44:26 -05:00
dannyrb
922ba8cc42 docs: toolbar docs for three different kinds of definitions 2019-12-09 00:44:04 -05:00
dannyrb
777ff88f3d docs: fix incorrect paths 2019-12-08 21:31:00 -05:00
dannyrb
68858db4b6 docs: fixing jsdoc for preregistration example 2019-12-08 21:26:54 -05:00
dannyrb
ab106afae3 docs: panel docs and gif 2019-12-08 21:26:39 -05:00
dannyrb
ac69b0a656 docs: ExtensionManager class docs 2019-12-08 14:37:54 -05:00
dannyrb
8edba24eec docs: filling in preRegistration hook info 2019-12-08 14:37:42 -05:00
dannyrb
aae232fc3e docs: tidying up extensions summary info 2019-12-08 14:09:42 -05:00
ohif-bot
8fad8ceb80 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.54.6
 - @ohif/ui@0.65.4
 - @ohif/viewer@2.11.8
2019-12-07 06:23:21 +00:00
dannyrb
f00f48da2b docs: fix broken links 2019-12-07 01:21:23 -05:00
dannyrb
076b89ef83 docs: stub bulk of missing extension docs 2019-12-07 01:20:09 -05:00
dannyrb
4920b527d1 docs: fix broken link 2019-12-07 01:13:33 -05:00
dannyrb
482041f053 docs: modules and contexts summary 2019-12-07 01:13:20 -05:00
dannyrb
674edf85f0 Merge branch 'master' of github.com:OHIF/Viewers into ups-master 2019-12-07 00:49:45 -05:00
dannyrb
33a1a465ea docs: lifecycle hooks summary 2019-12-07 00:49:40 -05:00
ohif-bot
6e04de30b6 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.54.5
 - @ohif/ui@0.65.3
 - @ohif/viewer@2.11.7
2019-12-07 05:27:27 +00:00
dannyrb
19117167ac Merge branch 'master' of github.com:OHIF/Viewers into ups-master 2019-12-07 00:25:31 -05:00
dannyrb
22e3c5d953 docs: prefixes in h1 titles to disambiguate pages 2019-12-07 00:23:43 -05:00
dannyrb
9a34877be4 docs: remove unused configuration link 2019-12-07 00:21:36 -05:00
dannyrb
b1b66429b6 docs: stub quick start page 2019-12-07 00:19:49 -05:00
ohif-bot
78e522fbf6 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.54.4
 - @ohif/ui@0.65.2
 - @ohif/viewer@2.11.6
2019-12-07 05:14:07 +00:00
dannyrb
830cb82965 docs: shift files around to match summary structure 2019-12-07 00:12:08 -05:00
dannyrb
9a71edda6a docs: translating --> internationlization 2019-12-06 22:56:00 -05:00
dannyrb
7a8ae23839 docs: nuke troubleshooting.md 2019-12-06 22:50:26 -05:00
dannyrb
6873c4f065 docs: shift "getting started" outside of essentials 2019-12-06 22:48:57 -05:00
dannyrb
6ea16eccd9 docs: call out different config types 2019-12-06 22:22:46 -05:00
dannyrb
ff381c6521 docs: shift viewer specific docs to own section 2019-12-06 22:21:52 -05:00
dannyrb
26cd695b8b docs: shift measurements to services directory 2019-12-06 21:58:13 -05:00
dannyrb
a4f1b2195c docs: clean up links 2019-12-06 21:57:35 -05:00
dannyrb
c8df17b032 docs: shift architecture to own dir; simplify sidebar 2019-12-06 21:54:15 -05:00
ohif-bot
f1a4c09b74 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.54.3
 - @ohif/core@1.13.3
 - @ohif/viewer@2.11.5
2019-12-06 21:34:12 +00:00
Danny Brown
02572b4928
docs: extensions (#1258)
* docs: process docs to include UX Stories requirement

* docs: include note regarding different environments

* Services init

* Remove unused canny logos

* docs: add ModalService diagram

* docs: GIF of notification

* docs: add ui-services page

* docs: simplify ui services call out in the general services docs

* docs: tips and tricks for UI services

* docs: moar pages

* docs: dialog gif

* docs: services in summary/sidebar

* docs: gif examples at top of dialog and notification pages

* docs: add UIModal gif

* docs: details for Dialog Service

* docs: include usage information for ui modal service

* docs: detailed information about our UI Notification Service

* docs: services diagram

* docs: remove unused links

* docs: services example and image

* docs: stubbing extension pages

* docs: UX Stories --> User Cases

* chore: eslint fix

* docs: extensions overview + diagram

* docs: update extensions in sidebar

* docs: extension skeleton and registration info

* docs: copy of maintained extensions table partial in the extensions folder

* docs: swap out old extensions structure for new
2019-12-06 16:31:46 -05:00
dannyrb
fd1d29820a docs: fix services linking 2019-12-06 09:25:57 -05:00
dannyrb
6c63a917d3 docs: explanation of default services and current state 2019-12-06 09:17:20 -05:00
dannyrb
caa6062c41 docs: begin breaking services docs into bite sized pages 2019-12-06 09:12:06 -05:00
Danny Brown
7f9743a020
docs: fix anchor links (#1256)
docs: fix anchor links (#1256)
2019-12-06 00:13:40 -05:00
Danny Brown
a2c4161477
docs: services (#1255)
* docs: process docs to include UX Stories requirement

* docs: include note regarding different environments

* Services init

* Remove unused canny logos

* docs: add ModalService diagram

* docs: GIF of notification

* docs: add ui-services page

* docs: simplify ui services call out in the general services docs

* docs: tips and tricks for UI services

* docs: moar pages

* docs: dialog gif

* docs: services in summary/sidebar

* docs: gif examples at top of dialog and notification pages

* docs: add UIModal gif

* docs: details for Dialog Service

* docs: include usage information for ui modal service

* docs: detailed information about our UI Notification Service

* docs: services diagram

* docs: remove unused links

* docs: services example and image
2019-12-05 15:47:46 -05:00
Danny Brown
42cfce60f5
docs: simplify PR checklist; add UX stories requirement 2019-12-04 16:25:52 -05:00
Danny Brown
244949bab6
docs: process updates labels deploy (#1245)
* docs: process docs to include UX Stories requirement

* docs: include note regarding different environments
2019-12-04 16:21:11 -05:00
ohif-bot
e87ec7b7f5 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@1.7.2
 - @ohif/viewer@2.11.4
2019-12-02 19:04:21 +00:00
Danny Brown
d98889f1eb
refactor: viewports store (#1239)
* Organize viewports reducers

* Organize viewports actions

* Add local state to store dom node and remove hack

* Comment usage of dom in vtk

* Fix set of enabledElements

* Fix warning in html viewport

* Update docs for state

* Add commandsmanager to commandsmodule

* refactor: Shift ConnectedViewportDownloadForm to extension-cornerstone (#1224)

* refactor: 💡 Shift ConnectedViewportDownloadForm to its own proj

Shift ConnectedViewportDownloadForm to its own project and use local
state to get enabledElement

Closes: #1206

* Refactor connected component to cornerstone component

* Remove builtin behaviour from toolbarrow
2019-12-02 14:02:35 -05:00
ohif-bot
817d43ee62 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@1.7.1
 - @ohif/extension-dicom-html@1.0.2
 - @ohif/extension-vtk@0.54.2
 - @ohif/core@1.13.2
 - @ohif/viewer@2.11.3
2019-12-02 16:30:32 +00:00
Igor Octaviano
f396b30166 refactor: Viewports state (#1218)
* Organize viewports reducers

* Organize viewports actions

* Add local state to store dom node and remove hack

* Comment usage of dom in vtk

* Fix set of enabledElements

* Fix warning in html viewport

* Update docs for state

* Add commandsmanager to commandsmodule
2019-12-02 11:29:04 -05:00
ohif-bot
0bb3eeb068 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.54.1
 - @ohif/core@1.13.1
 - @ohif/i18n@0.52.2
 - @ohif/ui@0.65.1
 - @ohif/viewer@2.11.2
2019-11-28 05:50:21 +00:00
Rodrigo Antinarelli
1df21a9e07 fix: User Preferences Issues (#1207)
* fix: study list translations

* Don't render until translations are ready

* Try to wait for translations to load

* Use null to render "nothing"

* Try toggling useSuspense off up a layer

* logging

* Remove useSuspense false flags

* DO NOT OPEN A PR WITH IT.
Experimental changes only.
Try to solve issues with useTranslation hooks
 #Please enter the commit message for your changes. Lines starting

* Remove unecessary changes

* feat: 🎸 useMedia hook to not use one more prop for upd state vl

* docs: Add license scan report and status (#1161)

Signed-off-by: fossabot <badges@fossa.io>

* fix: 🐛 Fix for JS breaking on header (#1164)

* feat: 🎸 Code review and refact

Revised code based on PRs(variable alias,...). Changed hook for
useMedia. Now, it provides two hooks: one to get displayMediaSize and
other to get Entity(component, objects...) based on displayMediaSize.
Implemented a similar solution for state manager to store
mediaQueryList(s) and displaySize for app.

* feat: 🎸 Fine tunning on mediaQuery value, fixed issue about it

* fix: 🐛 Fixed issue and refactoring

Fixed js exception and also refactoring userPreferences components to
functional component

* fix: 🐛 Code review. Localstorage fix minor bugs

* fix: 🐛 Ensure hotkey lower case always

* fix: translation switcher

* chore(release): publish [skip ci]

 - @ohif/extension-vtk@0.53.6
 - @ohif/ui@0.62.1
 - @ohif/viewer@2.8.2

* Add new modal service

* Change serviceManager prop to servicesManager

* CR Update: fix casing and add required proptypes to providers

* CR Update: Improve ohifmodal proptypes

* CR Update: Fix typo in extensionmanager

* CR Update: add default props to service and check service in provider

* Refactor modal provider to better use its own state

* ci: don't build our master branch (#1177)

* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* Use modal instead of modal context

* Ci/promotable builds (#1179)

* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag

* Change modal children order

* Ci/promotable builds (#1180)

* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag

* Try using ~/repo prefix in command

* Ci/promotable builds (#1181)

* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag

* Try using ~/repo prefix in command

* ci: make sure netlify command is available

* Ci/promotable builds (#1182)

* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag

* Try using ~/repo prefix in command

* ci: make sure netlify command is available

* ci: use sudo for global command

* Fix OHIFModal proptypes

* Ci/promotable builds (#1183)

* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag

* Try using ~/repo prefix in command

* ci: make sure netlify command is available

* ci: use sudo for global command

* Inline personal access token w/ env var

* Ci/promotable builds (#1184)

* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag

* Try using ~/repo prefix in command

* ci: make sure netlify command is available

* ci: use sudo for global command

* Inline personal access token w/ env var

* ci: workaround for sudo limitations

* ci: restore release workflow (#1185)

* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag

* Try using ~/repo prefix in command

* ci: make sure netlify command is available

* ci: use sudo for global command

* Inline personal access token w/ env var

* ci: workaround for sudo limitations

* ci: restore release workflow

* Pass services to each module, improve tests

* Add servicesManager test and registerServices method

* Fix key warning of snackbar elements

* Remove netlify-cli; we';ll install this on CI server

* Update staging and prod netlify site IDs

* Clean up NPM_PUBLISH step

* Clean up DOCS_PUBLISH step

* Clean up Deploy workflow

* Custom executor to override cypress config

* Spacing

* Use an existing docker hub image

* Switch to npx instead of digging into npm bin location

* Remove e2e test before prod deploy

* Add workflow images

* docs: continous integrationn

* Add default props to modal

* chore(release): publish [skip ci]

 - @ohif/extension-cornerstone@1.5.1
 - @ohif/extension-vtk@0.53.7
 - @ohif/core@1.9.1
 - @ohif/ui@0.62.2
 - @ohif/viewer@2.8.3

* chore(release): publish [skip ci]

 - @ohif/extension-vtk@0.53.8
 - @ohif/core@1.10.0
 - @ohif/ui@0.62.3
 - @ohif/viewer@2.8.4

* ci: Redirect site traffic to index.html if file is not resolved

* ci: fix typo

* fix: 🐛 Code review. Remove 'global state' for displaySize

* fix: 🐛 Code review. Ref back to useMedia and pass value down

Code review. Ref back to useMedia and pass value down (components)
instead of creating a specialized hook to tied any component on it

* fix: translation switcher

* fix

* cleanup

* add missed translation

* fix: 🐛 Code review

* fix: 🐛 Fix unit tests

* fix: 🐛 Fix unit test

* fix: 🐛 Code merge solve conflicts. Missing files changes

* Merge from master. Missing files changes

* feat: 🎸 Code review. Fix issues with DatePicker

Fixed at least the minimum issue with datePicker and update some content
on every translation changed

* fix: 🐛 Code review. Style fix on modal

* fixes in general preferences after merge

* fix

* export default i18n language

* translation fixes

* increase snackbar zindex

* initialize language

* WIP propagate props<>state fixes

* fix state propagation

* remove hotkey error when reset default

* fix datePicker

* i18n updates

* fix i18n strings

* fix reset default -- set right input value

* fix default language

* fix e2e for user preferences

* small fix datePicker props

* remove i18n from window -- debugging purposes only

* lint fixes
2019-11-28 00:48:27 -05:00
ohif-bot
fd1a9e2abe chore(release): publish [skip ci]
- @ohif/viewer@2.11.1
2019-11-27 21:04:00 +00:00
Egor Lezhnin
e34a057263 fix: of undefined name of project (#1231) 2019-11-27 16:02:12 -05:00
ohif-bot
27e02825a4 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@1.7.0
 - @ohif/extension-vtk@0.54.0
 - @ohif/core@1.13.0
 - @ohif/ui@0.65.0
 - @ohif/viewer@2.11.0
2019-11-25 22:16:35 +00:00
Igor Octaviano
8fd3af1e13 feat: Add new annotate tool using new dialog service (#1211)
* Testing dialog

* Refactor modal and add dialog component to simple dialog

* Use existent dialog

* Expect event from getText callback (annotation)

* Bump cornerstone-tools version

* Use simple dialog

* bump cornersotne version

* CR Update: Update dialgo method names and default values

* CR Update: Bump overlay and show only if theres at least one overlay prop set to true

* CR Update: Use percentage over view height in draggable area

* Fix broken test vtk checks WWWC tool

* Comment test (non-deterministic)
2019-11-25 17:13:42 -05:00
ohif-bot
1334ba8eb0 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.53.13
 - @ohif/ui@0.64.2
 - @ohif/viewer@2.10.2
2019-11-25 15:50:36 +00:00
Danny Brown
a870b3cc60
fix: Issue branch from danny experimental changes pr 1128 (#1150)
* fix: study list translations

* Don't render until translations are ready

* Try to wait for translations to load

* Use null to render "nothing"

* Try toggling useSuspense off up a layer

* logging

* Remove useSuspense false flags

* DO NOT OPEN A PR WITH IT.
Experimental changes only.
Try to solve issues with useTranslation hooks
 #Please enter the commit message for your changes. Lines starting

* Remove unecessary changes

* feat: 🎸 useMedia hook to not use one more prop for upd state vl

* docs: Add license scan report and status (#1161)

Signed-off-by: fossabot <badges@fossa.io>

* fix: 🐛 Fix for JS breaking on header (#1164)

* feat: 🎸 Code review and refact

Revised code based on PRs(variable alias,...). Changed hook for
useMedia. Now, it provides two hooks: one to get displayMediaSize and
other to get Entity(component, objects...) based on displayMediaSize.
Implemented a similar solution for state manager to store
mediaQueryList(s) and displaySize for app.

* feat: 🎸 Fine tunning on mediaQuery value, fixed issue about it

* chore(release): publish [skip ci]

 - @ohif/extension-vtk@0.53.6
 - @ohif/ui@0.62.1
 - @ohif/viewer@2.8.2

* Add new modal service

* Change serviceManager prop to servicesManager

* CR Update: fix casing and add required proptypes to providers

* CR Update: Improve ohifmodal proptypes

* CR Update: Fix typo in extensionmanager

* CR Update: add default props to service and check service in provider

* Refactor modal provider to better use its own state

* ci: don't build our master branch (#1177)

* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* Use modal instead of modal context

* Ci/promotable builds (#1179)

* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag

* Change modal children order

* Ci/promotable builds (#1180)

* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag

* Try using ~/repo prefix in command

* Ci/promotable builds (#1181)

* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag

* Try using ~/repo prefix in command

* ci: make sure netlify command is available

* Ci/promotable builds (#1182)

* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag

* Try using ~/repo prefix in command

* ci: make sure netlify command is available

* ci: use sudo for global command

* Fix OHIFModal proptypes

* Ci/promotable builds (#1183)

* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag

* Try using ~/repo prefix in command

* ci: make sure netlify command is available

* ci: use sudo for global command

* Inline personal access token w/ env var

* Ci/promotable builds (#1184)

* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag

* Try using ~/repo prefix in command

* ci: make sure netlify command is available

* ci: use sudo for global command

* Inline personal access token w/ env var

* ci: workaround for sudo limitations

* ci: restore release workflow (#1185)

* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag

* Try using ~/repo prefix in command

* ci: make sure netlify command is available

* ci: use sudo for global command

* Inline personal access token w/ env var

* ci: workaround for sudo limitations

* ci: restore release workflow

* Pass services to each module, improve tests

* Add servicesManager test and registerServices method

* Fix key warning of snackbar elements

* Remove netlify-cli; we';ll install this on CI server

* Update staging and prod netlify site IDs

* Clean up NPM_PUBLISH step

* Clean up DOCS_PUBLISH step

* Clean up Deploy workflow

* Custom executor to override cypress config

* Spacing

* Use an existing docker hub image

* Switch to npx instead of digging into npm bin location

* Remove e2e test before prod deploy

* Add workflow images

* docs: continous integrationn

* Add default props to modal

* chore(release): publish [skip ci]

 - @ohif/extension-cornerstone@1.5.1
 - @ohif/extension-vtk@0.53.7
 - @ohif/core@1.9.1
 - @ohif/ui@0.62.2
 - @ohif/viewer@2.8.3

* chore(release): publish [skip ci]

 - @ohif/extension-vtk@0.53.8
 - @ohif/core@1.10.0
 - @ohif/ui@0.62.3
 - @ohif/viewer@2.8.4

* ci: Redirect site traffic to index.html if file is not resolved

* ci: fix typo

* fix: 🐛 Code review. Remove 'global state' for displaySize

* fix: 🐛 Code review. Ref back to useMedia and pass value down

Code review. Ref back to useMedia and pass value down (components)
instead of creating a specialized hook to tied any component on it

* Merge from master. Missing files changes

* feat: 🎸 Code review. Fix issues with DatePicker

Fixed at least the minimum issue with datePicker and update some content
on every translation changed
2019-11-25 10:45:37 -05:00
ohif-bot
52687a7113 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.53.12
 - @ohif/ui@0.64.1
 - @ohif/viewer@2.10.1
2019-11-20 19:17:36 +00:00
Mirna Silva
421de23ba3 test: Test Cases for User Preferences (#1195)
* Test Cases for User Preferences

* CI fix

* Fix for CI

* Fix based on PR review comments

* Fix for script-tag issue on CI

* Fix for new selectors on Preferences Modal and CI failure
2019-11-20 14:15:10 -05:00
ohif-bot
adc8d9ea0f chore(release): publish [skip ci]
- @ohif/extension-cornerstone@1.6.0
 - @ohif/extension-vtk@0.53.11
 - @ohif/core@1.12.0
 - @ohif/ui@0.64.0
 - @ohif/viewer@2.10.0
2019-11-19 19:19:32 +00:00
Igor Octaviano
f65639c2b0 feat: New dialog service (#1202)
* Add dialog provider boilerplate and improve provider imports

* Add react-draggable dependency

* Add dialog service boilerplate

* Refactor modal to use react-modal and remove dependency on modal themed styles

* Update cinedialog to use new dialog provider

* Add multiple dialogs and refactor provider (dialogs)

* Set app root (modal)

* Add modal zindex bigger than tooltip

* Block drag on buttons/svgs/paths/input and improve jsdoc

* Use guid util to generate dialog ids

* Explicit props in dialog provider

* Improve jsdocs

* Fix tests broken

* Fix boundaries calculation

* Remember last dialog position

* Update providers location

* Add scroll to modal

* Add toggable button toolbar and fix css modal
2019-11-19 14:17:33 -05:00
Danny Brown
cdd75bda2a
docs: copy-paste of Erik's notes on PRs and releases
At least until we can sneak some graphics, tables, and emojis in
2019-11-19 04:03:41 -05:00
Danny Brown
d92fe44d3c
chore: add triage flag label 2019-11-19 03:50:17 -05:00
Danny Brown
d90c2ac024
chore: add triage flag label 2019-11-19 03:49:57 -05:00
Danny Brown
7ce5e1d2d3
chore: add triage flag 2019-11-19 03:49:36 -05:00
Danny Brown
a3bf47f9bf
chore: attempt known good syntax 2019-11-19 03:48:32 -05:00
Danny Brown
81f79a26ad
chore: revert 2019-11-19 03:46:28 -05:00
Danny Brown
60b4b5d7cf
chore: lets try double quotes 2019-11-19 03:45:52 -05:00
Danny Brown
69c54d4f49
chore: labels format 2019-11-19 03:44:26 -05:00
Danny Brown
0f8868a232
chore: add triage to default bug report label 2019-11-19 03:39:09 -05:00
Danny Brown
1bbfee4087
chore: use github label syntax for triage flag 2019-11-19 03:38:33 -05:00
ohif-bot
33c7b59611 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.53.10
 - @ohif/core@1.11.0
 - @ohif/ui@0.63.0
 - @ohif/viewer@2.9.0
2019-11-19 08:36:12 +00:00
ladeirarodolfo
b17f753e62 feat: Issue 879 viewer route query param not filtering but promoting (#1141)
* feat: 🎸 Filter by url query param for seriesInstnaceUID

* fix: Set SR viewport as active by interaction (#1118)

* fix: Set SR viewport as active by interaction

* quick fix

* (eslint) add "before" as global variables

* add data-cy

* add data-cy

* create E2E test

* (E2E) create custom command to set layout size

* remove .only e2e

* remove throttle for onScroll

* feat: 🎸 Code review in progress

Code review. Move retrieveMEtadata load to separate folders. Some minor
code clean up

* feat: 🎸 Code review. Missing changes from previous commit

* feat: 🎸 Code review missing changes from previous commit

When sorting, Criteria for instance must use instanceNumber and not
instancesNumber

* feat: 🎸 Code review. Add more jsdoc info

* feat: 🎸 Code review. Prettify changed code

* feat: 🎸 Instead of filtering do promote. WIP

* feat: 🎸 Fix minor issue. Allow promote or filter

* feat: 🎸 Changing component to functional component

* Merge from master Part1/2
Conflicts solved:
	both added:      core/src/studies/services/wado/retrieveMetadataLoader.js
	both added:      core/src/studies/services/wado/retrieveMetadataLoaderAsync.js
	both added:      core/src/studies/services/wado/retrieveMetadataLoaderSync.js
	both modified:   viewer/src/connectedComponents/ViewerRetrieveStudyData.js
	both modified:   viewer/src/routes/ViewerRouting.js

* Merge process from master Part 1/2
Missing files from previous commit

* feat: 🎸 Add cancelable promises to cut async methods

* feat: 🎸 Missing changes from previous merge process

* feat: 🎸 Missing changes from previous merge process
2019-11-19 03:33:48 -05:00
Danny Brown
c77a2ef5c9
docs: fix broken links 2019-11-19 03:24:49 -05:00
Danny Brown
348edd4717
docs: Issue curation 2019-11-19 03:23:30 -05:00
Danny Brown
407060658a
docs: add "our process" to sidebar 2019-11-19 02:53:57 -05:00
Danny Brown
fc00f9d505
docs: clarify purpose of page and index links 2019-11-19 02:52:24 -05:00
Danny Brown
bc3d080672
docs: flush out issue triage 2019-11-19 02:46:04 -05:00
Danny Brown
09353354c3
docs: start "our process" docs 2019-11-19 02:08:46 -05:00
ohif-bot
0a12320083 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.53.9
 - @ohif/i18n@0.52.1
 - @ohif/ui@0.62.4
 - @ohif/viewer@2.8.5
2019-11-18 21:33:41 +00:00
Rodrigo Antinarelli
813ee5ed4d fix: minor date picker UX improvements
* improvement: Date Picker

* remove unused values

* fix: search results w/ valid date returning empty

* translations from locize

* styling select

* revert studyListDateFilterNumDays
2019-11-18 16:30:47 -05:00
Danny Brown
6085b5f733
docs: add ohif urls to docs
docs: add ohif urls to docs
2019-11-18 11:33:48 -05:00
dannyrb
ffe12789dd docs: add ohif urls to docs 2019-11-18 11:32:13 -05:00
Danny Brown
0b68429dfb
Merge pull request #1200 from dannyrb/ci/complete-promoted-deploy
ci: fix typo
2019-11-18 11:07:50 -05:00
dannyrb
b747ea5144 ci: fix typo 2019-11-18 11:06:57 -05:00
Danny Brown
caadf089df
Merge pull request #1199 from dannyrb/ci/complete-promoted-deploy
ci: Redirect site traffic to index.html if file is not resolved
2019-11-18 11:00:11 -05:00
Danny Brown
e0fc69c181
Merge branch 'master' into ci/complete-promoted-deploy 2019-11-18 11:00:03 -05:00
dannyrb
2b9765304f ci: Redirect site traffic to index.html if file is not resolved 2019-11-18 10:57:21 -05:00
ohif-bot
57730483e9 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.53.8
 - @ohif/core@1.10.0
 - @ohif/ui@0.62.3
 - @ohif/viewer@2.8.4
2019-11-15 20:04:45 +00:00
Danny Brown
731b64e321
feat: new modal service
feat: new modal service
2019-11-15 15:03:20 -05:00
Danny Brown
e97a09b0f4
Merge branch 'master' into feat/new-modal-service 2019-11-15 14:52:37 -05:00
Danny Brown
f63d8a73d8
feat: Inject into Extension Modules / improve tests
[UI Services to Extensions] Inject into Extension Modules / improve tests
2019-11-15 14:47:40 -05:00
ohif-bot
f10adf82f4 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@1.5.1
 - @ohif/extension-vtk@0.53.7
 - @ohif/core@1.9.1
 - @ohif/ui@0.62.2
 - @ohif/viewer@2.8.3
2019-11-15 18:44:17 +00:00
Danny Brown
6174109d5a
feat: Add new modal service
[UI Services to Extensions]: Add new modal service
2019-11-15 13:42:20 -05:00
Danny Brown
244e822afc
Merge branch 'master' into feat/new-modal-service 2019-11-15 13:31:16 -05:00
Igor
cbdeeae597 Merge branch 'feat/new-modal-service' of github.com:OHIF/Viewers into feat/new-modal-service 2019-11-15 15:21:02 -03:00
Igor
7f6de72e8e Add default props to modal 2019-11-15 15:20:26 -03:00
Danny Brown
1f514e5f1b
ci: remove e2e for deploy; add docs
ci: remove e2e for deploy; add docs
2019-11-15 12:03:30 -05:00
dannyrb
f3fed511b9 docs: continous integrationn 2019-11-15 12:02:08 -05:00
dannyrb
31796d272c Merge branch 'ci/complete-promoted-deploy' of github.com:dannyrb/Viewers into ci/complete-promoted-deploy 2019-11-15 11:11:26 -05:00
dannyrb
b41e6f93f3 Add workflow images 2019-11-15 11:11:14 -05:00
dannyrb
882a45d398 Remove e2e test before prod deploy 2019-11-15 11:08:52 -05:00
Danny Brown
fb0cd9355f
Merge pull request #1189 from dannyrb/ci/complete-promoted-deploy
Ci/complete promoted deploy
2019-11-15 10:33:01 -05:00
Danny Brown
2b12193020
Merge branch 'master' into ci/complete-promoted-deploy 2019-11-15 10:32:53 -05:00
dannyrb
9a626a2064 Switch to npx instead of digging into npm bin location 2019-11-15 10:31:16 -05:00
dannyrb
903777044a Use an existing docker hub image 2019-11-15 10:21:47 -05:00
Danny Brown
5e4725860d
Merge pull request #1188 from dannyrb/ci/complete-promoted-deploy
Ci/complete promoted deploy
2019-11-15 10:08:43 -05:00
dannyrb
670470119f Spacing 2019-11-15 09:38:21 -05:00
dannyrb
0d4f90f3cd Custom executor to override cypress config 2019-11-15 09:34:57 -05:00
dannyrb
43dd87c2c1 Clean up Deploy workflow 2019-11-15 09:18:56 -05:00
dannyrb
98f8583fba Clean up DOCS_PUBLISH step 2019-11-15 09:11:47 -05:00
dannyrb
97a9a505ca Clean up NPM_PUBLISH step 2019-11-15 09:11:31 -05:00
dannyrb
bb74f3a761 Update staging and prod netlify site IDs 2019-11-15 09:11:11 -05:00
dannyrb
aa33397fe6 Remove netlify-cli; we';ll install this on CI server 2019-11-15 09:10:51 -05:00
Danny Brown
8ae731fe4c
Merge branch 'master' into feat/new-modal-service 2019-11-15 08:43:40 -05:00
Igor
add3416e11 Fix key warning of snackbar elements 2019-11-15 09:54:14 -03:00
Igor
136969bf18 Add servicesManager test and registerServices method 2019-11-15 09:27:42 -03:00
Igor
e3e039ad47 Pass services to each module, improve tests 2019-11-14 19:29:40 -03:00
Danny Brown
0797eff0b7
ci: restore release workflow (#1185)
* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag

* Try using ~/repo prefix in command

* ci: make sure netlify command is available

* ci: use sudo for global command

* Inline personal access token w/ env var

* ci: workaround for sudo limitations

* ci: restore release workflow
2019-11-14 16:32:14 -05:00
Danny Brown
55a5f04923
Ci/promotable builds (#1184)
* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag

* Try using ~/repo prefix in command

* ci: make sure netlify command is available

* ci: use sudo for global command

* Inline personal access token w/ env var

* ci: workaround for sudo limitations
2019-11-14 16:20:31 -05:00
Danny Brown
ed9e4d6751
Ci/promotable builds (#1183)
* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag

* Try using ~/repo prefix in command

* ci: make sure netlify command is available

* ci: use sudo for global command

* Inline personal access token w/ env var
2019-11-14 16:08:25 -05:00
Igor
b6119f8e29 Fix OHIFModal proptypes 2019-11-14 17:57:44 -03:00
Danny Brown
2e38f4b2e4
Ci/promotable builds (#1182)
* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag

* Try using ~/repo prefix in command

* ci: make sure netlify command is available

* ci: use sudo for global command
2019-11-14 15:56:23 -05:00
Danny Brown
e03abc45f5
Ci/promotable builds (#1181)
* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag

* Try using ~/repo prefix in command

* ci: make sure netlify command is available
2019-11-14 15:48:09 -05:00
Danny Brown
f03d64ce39
Ci/promotable builds (#1180)
* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag

* Try using ~/repo prefix in command
2019-11-14 15:41:34 -05:00
Igor
e895bfb1aa Change modal children order 2019-11-14 17:40:37 -03:00
Danny Brown
17358c3f4b
Ci/promotable builds (#1179)
* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions

* ci: try building with QUICK_BUILD flag
2019-11-14 15:27:34 -05:00
Igor
ec7337e801 Use modal instead of modal context 2019-11-14 17:25:09 -03:00
Danny Brown
538ea2516d
ci: don't build our master branch (#1177)
* ci: don't build our master branch

* Add netlify-cli as a dev dependency

* ci: trying a sheltered merge flow for promotions
2019-11-14 15:01:55 -05:00
Igor
fe687cd2f9 Refactor modal provider to better use its own state 2019-11-14 14:56:01 -03:00
Igor
bdb9af5c4b CR Update: add default props to service and check service in provider 2019-11-14 12:43:25 -03:00
Igor
db0f751a68 CR Update: Fix typo in extensionmanager 2019-11-14 11:50:37 -03:00
Igor
08fdb10f6d CR Update: Improve ohifmodal proptypes 2019-11-14 11:42:25 -03:00
Igor
95c18b4986 CR Update: fix casing and add required proptypes to providers 2019-11-14 11:16:35 -03:00
Igor
e684558783 Change serviceManager prop to servicesManager 2019-11-14 10:32:24 -03:00
Igor
9104e7be50 Add new modal service 2019-11-14 10:19:33 -03:00
ohif-bot
81ad25b39f chore(release): publish [skip ci]
- @ohif/extension-vtk@0.53.6
 - @ohif/ui@0.62.1
 - @ohif/viewer@2.8.2
2019-11-14 03:53:10 +00:00
Igor Octaviano
54d2cde6da refactor: 💡 Improve hotkeyPreferences proptypes / add lowercase (#1165)
* refactor: 💡 Improve hotkeyPreferences proptypes / add lowercase

Improve hotkeyPreferences proptypes and lowercase event keys to guard
against different browsers casings

* Add isRequired to proptypes and empty hotkeys message
2019-11-13 22:42:49 -05:00
ohif-bot
9edc366ff7 chore(release): publish [skip ci]
- @ohif/viewer@2.8.1
2019-11-14 02:48:34 +00:00
Mirna Silva
79c10bb424 test: Visual testing for Cornerstone and VTK (#1169)
* Visual testing for Cornerstone and VTK

* Fix for CI

* Review fix: Removed cornerstone function and added snapshot description

* Added snapshot description

* Fix for CI
2019-11-13 21:36:19 -05:00
ohif-bot
d8055e458f chore(release): publish [skip ci]
- @ohif/extension-cornerstone@1.5.0
 - @ohif/extension-vtk@0.53.5
 - @ohif/core@1.9.0
 - @ohif/ui@0.62.0
 - @ohif/viewer@2.8.0
2019-11-13 20:12:25 +00:00
Igor Octaviano
5c04e34c8f feat: expose UiNotifications service (#1172)
* playing around

* Change extension init and preRegistration signature

* Clear test code

* Update core index test

* Fix test

* Tricking the bug

* Renaming file back to trick some weird bug
2019-11-13 15:02:14 -05:00
Egor Lezhnin
c59c5b3f14 feat: filter field for google api windows (#1170) 2019-11-13 09:38:49 -05:00
ohif-bot
c4adcfd39e chore(release): publish [skip ci]
- @ohif/viewer@2.7.1
2019-11-12 12:23:55 +00:00
ladeirarodolfo
0fbaf95971 fix: 🐛 Fix for JS breaking on header (#1164) 2019-11-12 07:13:59 -05:00
fossabot
a2a7e05e7d docs: Add license scan report and status (#1161)
Signed-off-by: fossabot <badges@fossa.io>
2019-11-11 21:43:24 -05:00
ohif-bot
9da8647c84 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.53.4
 - @ohif/core@1.8.0
 - @ohif/ui@0.61.0
 - @ohif/viewer@2.7.0
2019-11-12 02:17:40 +00:00
Igor Octaviano
e62f5f8dd2 feat: 🎸 Update hotkeys and user preferences modal (#1135)
* feat: 🎸 Update hotkeys and user preferences modal

This feature fix incompatibility with existent hotkeys component and
adds user preferences modal back

Closes: #923

* Update preferences structure in store

* Hide window level section of user preferences

* Update modal to reflect current hotkey value

* Clone object with hotkeys before passing to manager

* CR Update: Extract hotkeys manager format code to manager

* Fix broken cypress test

* Use new modal provider

* Rename hotkeyDefinitions in hotkeyspreferences and use array as representation

* Update study test and remove unused styles
2019-11-11 21:03:36 -05:00
ohif-bot
dc6e9d6bb5 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.53.3
 - @ohif/viewer@2.6.4
2019-11-11 09:48:18 +00:00
Danny Brown
84a097212b fix: mpr2d vtkjs viewport does not render if range is set to NaN values (#1157)
* chore: fix proptypes declaration

* fix: seperate helper method to calculate our initial range

* chore: remove unused import

* chore: update studies propType from object to array
2019-11-11 09:38:36 +00:00
ohif-bot
2381810ba9 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@1.4.1
 - @ohif/extension-vtk@0.53.2
 - @ohif/core@1.7.1
 - @ohif/viewer@2.6.3
2019-11-08 13:07:35 +00:00
Erik Ziegler
31b1adfa59
fix: Add a fallback metadata provider which pulls metadata from WADO-… (#1158)
* fix: Add a fallback metadata provider which pulls metadata from WADO-RS cache when WADO-URI is used.

* cleanup
2019-11-08 13:55:56 +01:00
ohif-bot
cd28877ed8 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.53.1
 - @ohif/ui@0.60.1
 - @ohif/viewer@2.6.2
2019-11-08 12:14:44 +00:00
Mirna Silva
e81a39f5be
Merge pull request #1159 from mirnasilva/fix_studylist
Fix for modalities search result
2019-11-08 09:02:34 -03:00
Mirna Silva
9a2cf70504 Fix for modalities search result 2019-11-08 08:47:32 -03:00
ladeirarodolfo
d70eae3eb0 fix: Fix display issues with incorrect thumbnails. Change ImageThumb to functional component. (#1148) 2019-11-08 11:26:31 +01:00
ohif-bot
8481e94d4d chore(release): publish [skip ci]
- @ohif/viewer@2.6.1
2019-11-06 04:56:33 +00:00
Mirna Silva
19b22c39ae test: Study list test cases: Patient Name, MRN, Modality, Description (#1121)
* Study list tests: Patient Name, MRN, Modality, Description

* Fixed field selector

* Desktop tests

* Fix for study list

* Added tablet tests and small refactor on aliases

* Fix based on reviews
2019-11-05 23:46:38 -05:00
ohif-bot
05802a3cf1 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.53.0
 - @ohif/i18n@0.52.0
 - @ohif/ui@0.60.0
 - @ohif/viewer@2.6.0
2019-11-06 04:23:15 +00:00
Danny Brown
75d88bc454
feat: modal provider (#1151)
* feat: 🎸 New modal provider

A new modal provider/context component to unify modal related code and
simplify modal use

Closes: #1086

* refactor(ModalContext): Keep current modal lib

* Update modal provider version according to PR #1116

* Update modal provider props to use inner props

* Add custom class prop

* CR Update: Refactor provider to extract specific modal

* Fix modal import

* CR Update: Move from spread to object assign

* CR Update: Add proptypes, use classnames dependency over interpolation and rename modal

* fix: 🎸 Update AboutModal to use new modal provider (#1116)

* feat: 🎸 Update AboutModal to use new modal provider

This feature updates the AboutModal component and Header to use the new
modal context (modal provider)

* feat(ModalProvider): Add title prop to provider

* fix(ModalContext): Add defaults on hide

* CR Updates: Refactor modal provider and fix import

* CR Update: Expose props and flat modal optons

* Use customclassname instead of static

* Add cypress tag

* test: set right viewport when layout is decreased (#1146)

* chore(release): publish [skip ci]

 - @ohif/viewer@2.3.6

* fix: 🐛 Minor issues measurement panel related to description (#1142)

* chore(release): publish [skip ci]

 - @ohif/extension-vtk@0.52.28
 - @ohif/ui@0.58.5
 - @ohif/viewer@2.3.7

* fix: 🐛 Upgrade react-vtkjs-viewport to fix volume orientation (#1143)

* chore(release): publish [skip ci]

 - @ohif/extension-vtk@0.52.29
 - @ohif/viewer@2.3.8

* CR Update: Extract and rename AboutModal to AboutContent

* feat: 🎸 New modal provider (#1110)

* feat: 🎸 New modal provider

A new modal provider/context component to unify modal related code and
simplify modal use

Closes: #1086

* refactor(ModalContext): Keep current modal lib

* Update modal provider version according to PR #1116

* Update modal provider props to use inner props

* Add custom class prop

* CR Update: Refactor provider to extract specific modal

* Fix modal import

* CR Update: Move from spread to object assign

* CR Update: Add proptypes, use classnames dependency over interpolation and rename modal

* chore(release): publish [skip ci]

 - @ohif/extension-vtk@0.52.30
 - @ohif/ui@0.59.0
 - @ohif/viewer@2.4.0

* CR Update: Keep translation name

* CR Update: Reposition cy tag of about modal in the correct level

* feat: 🎸 Update DownloadModal to use new modal provider (#1119)

* feat: 🎸 Update AboutModal to use new modal provider

This feature updates the AboutModal component and Header to use the new
modal context (modal provider)

* feat(ModalProvider): Add title prop to provider

* feat(DownloadModal): Refactor to use new modal provider

* Update modal provider props

* Use translation for DownloadDialog

* CR Update: Use useTranslation hook

* CR Update: Extract downloadDialog and rename to downloadContent

* CR Update: Fix typo

* CR Update: Rename download content to viewport download form
2019-11-05 23:07:03 -05:00
ohif-bot
9827d1bf84 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.32
 - @ohif/core@1.7.0
 - @ohif/viewer@2.5.0
2019-11-05 22:00:36 +00:00
ladeirarodolfo
e208f2e6a9 feat: 🎸 Filter by url query param for seriesInstnaceUID (#1117)
* feat: 🎸 Filter by url query param for seriesInstnaceUID

* fix: Set SR viewport as active by interaction (#1118)

* fix: Set SR viewport as active by interaction

* quick fix

* (eslint) add "before" as global variables

* add data-cy

* add data-cy

* create E2E test

* (E2E) create custom command to set layout size

* remove .only e2e

* remove throttle for onScroll

* feat: 🎸 Code review in progress

Code review. Move retrieveMEtadata load to separate folders. Some minor
code clean up

* feat: 🎸 Code review. Missing changes from previous commit

* feat: 🎸 Code review missing changes from previous commit

When sorting, Criteria for instance must use instanceNumber and not
instancesNumber

* feat: 🎸 Code review. Add more jsdoc info

* feat: 🎸 Code review. Prettify changed code

* feat: 🎸 Code review

Changed case for seriesInstanceUID. Use qido to filter (async). Fallback
to no params and same api method(async)
2019-11-05 16:48:44 -05:00
ohif-bot
9c1a3c3183 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.31
 - @ohif/core@1.6.2
 - @ohif/ui@0.59.1
 - @ohif/viewer@2.4.1
2019-11-05 20:01:36 +00:00
Emanuel Fiuza de Oliveira
ecaf578f92
fix: #1075 Returning to the Study List before all series have finishe… (#1090)
* fix: #1075 Returning to the Study List before all series have finished loading throws multiple errors in console

* fix: 🐛 Addressing review feedback from issue #1075

Adding support for cancelable pattern

Closes: #1075

* fix: 🐛 update unit test for exports

Closes: #1075
2019-11-05 16:47:54 -03:00
ohif-bot
d26adf92bd chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.30
 - @ohif/ui@0.59.0
 - @ohif/viewer@2.4.0
2019-11-04 16:06:44 +00:00
Igor Octaviano
5ee832b195 feat: 🎸 New modal provider (#1110)
* feat: 🎸 New modal provider

A new modal provider/context component to unify modal related code and
simplify modal use

Closes: #1086

* refactor(ModalContext): Keep current modal lib

* Update modal provider version according to PR #1116

* Update modal provider props to use inner props

* Add custom class prop

* CR Update: Refactor provider to extract specific modal

* Fix modal import

* CR Update: Move from spread to object assign

* CR Update: Add proptypes, use classnames dependency over interpolation and rename modal
2019-11-04 10:55:05 -05:00
ohif-bot
8baba22a2e chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.29
 - @ohif/viewer@2.3.8
2019-11-04 09:55:56 +00:00
James Petts
1d86b1a102 fix: 🐛 Upgrade react-vtkjs-viewport to fix volume orientation (#1143) 2019-11-04 10:45:53 +01:00
ohif-bot
25e6817248 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.28
 - @ohif/ui@0.58.5
 - @ohif/viewer@2.3.7
2019-11-04 04:07:09 +00:00
ladeirarodolfo
681384b742 fix: 🐛 Minor issues measurement panel related to description (#1142) 2019-11-03 22:53:24 -05:00
ohif-bot
54e07c281f chore(release): publish [skip ci]
- @ohif/viewer@2.3.6
2019-11-02 11:39:36 +00:00
Rodrigo Antinarelli
9dedccc7f9 test: set right viewport when layout is decreased (#1146) 2019-11-02 07:26:24 -04:00
ohif-bot
621e63b3e1 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.27
 - @ohif/core@1.6.1
 - @ohif/ui@0.58.4
 - @ohif/viewer@2.3.5
2019-10-31 18:51:34 +00:00
Danny Brown
64cf3b324d
fix: application crash if patientName is an object (#1138)
* fix: get adapter store picker to show

* fix: error caused by DICOMWeb "empty object" for patientName

* formatting

* refactor: kill the pills

* Indicate modalities is missing if not provided

* Consistent modality display

* Make sure modalities styles are applied

* revert config
2019-10-31 14:41:08 -04:00
ohif-bot
b7f315ca47 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.26
 - @ohif/ui@0.58.3
 - @ohif/viewer@2.3.4
2019-10-30 20:03:51 +00:00
ladeirarodolfo
caaa032c4b fix: 🐛 Fix ghost shadow on thumb (#1113)
* fix: 🐛 Fix ghost shadow on thumb

Updated react-dnd package for the lates. Refactored thumbnail component

Closes: 1087

* feat: 🎸 Code review

Set flex instead of float. Add cypress tag to thumb container

* feat: 🎸 Code review. Revised style when no description
2019-10-30 15:53:58 -04:00
ohif-bot
22127a8f59 chore(release): publish [skip ci]
- @ohif/viewer@2.3.3
2019-10-30 15:25:05 +00:00
Danny Brown
50ca2bde97
fix: get adapter store picker to show (#1134) 2019-10-30 11:15:51 -04:00
ohif-bot
c73cfbc110 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.25
 - @ohif/ui@0.58.2
 - @ohif/viewer@2.3.2
2019-10-29 20:47:05 +00:00
Igor Octaviano
5716b71d40 fix: 🐛 Limit image download size to avoid browser issues (#1112)
* fix: 🐛 Limit image download size to avoid browser issues

This fix adjusts the max texture size to allow browser compatibility
(blob size limit)

Closes: #1099

* CR Updates: Clamp values using math.min, remove unnecessary onBlur event and small adjustments
2019-10-29 16:36:34 -04:00
ohif-bot
a3028ad1f6 chore(release): publish [skip ci]
- @ohif/viewer@2.3.1
2019-10-29 20:17:36 +00:00
Danny Brown
352407c71a
fix: rollbar template needs PUBLIC_URL defined (#1127) 2019-10-29 16:04:53 -04:00
ohif-bot
1b5a5a2963 chore(release): publish [skip ci]
- @ohif/viewer@2.3.0
2019-10-29 19:02:49 +00:00
Danny Brown
cf5136899e
feat: service worker (#1045)
* init

* use workbox-window

* Try to accomodate SW hosted at non root url

* v5 updated namespaces

* Test w/ no prompt

* add icons to manifest

* remove scope for now

* add icon tile information to entrypoint

* See if we can skirt by without a duplicate install

* shift client claims to skip waiting message

* Remove prepended slash

* comment out cache handler for now

* Simplify service-worker to skip waiting and install when a new worker is detected

* Use generated icons

* Update rollbar config
2019-10-29 14:51:40 -04:00
ohif-bot
8c4e96bb3d chore(release): publish [skip ci]
- @ohif/extension-dicom-html@1.0.1
 - @ohif/viewer@2.2.2
2019-10-29 18:30:34 +00:00
Rodrigo Antinarelli
5b334175c3 fix: Set SR viewport as active by interaction (#1118)
* fix: Set SR viewport as active by interaction

* quick fix

* (eslint) add "before" as global variables

* add data-cy

* add data-cy

* create E2E test

* (E2E) create custom command to set layout size

* remove .only e2e

* remove throttle for onScroll
2019-10-29 14:21:56 -04:00
ohif-bot
20bfc829f7 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.24
 - @ohif/ui@0.58.1
 - @ohif/viewer@2.2.1
2019-10-29 11:13:46 +00:00
米老朱
0d498ba17d fix(StudyList): camel case colSpan (#1123) 2019-10-29 12:05:36 +01:00
ohif-bot
a0180a9f0c chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.23
 - @ohif/ui@0.58.0
 - @ohif/viewer@2.2.0
2019-10-28 20:49:00 +00:00
Danny Brown
2cdef4b984
feat: responsive study list (#1068)
* feat: 🎸 Load spinner when selecting gcloud store. Add key on td

* feat: 🎸 Code review. Translate loading study status

* feat: 🎸 Code review. Minor code refactoring

* fix: add missing study and index declerations

* Newer version of react-dates (calendar input component)

* Add useMedia hook

* Add useDebounce hook

* Export hooks for consumption

* Pull search filter into own component

* StudyListWithData to StudyListRoute

* Rename pagination component

* Rename Toolbar

* CustomeDateRangePicker to plain ol' css

* Remove unused styles

* Misc

* Magic to make our "OR" filters work

* Play w/ Mobile styles

* Fix pagination pushing out max width for viewport

* Tidy up small and medium templates

* Remove unecessary nesting

* Better mobile header and logo styles

* Fix studyList font size

* Remove unused code

* hookup on click

* Fix table search selectors

* Cypress uses medium width

* Remove irrelevant test

* Fix primary sort

* Fix sort for our smaller displays

* fix study list sometimes longer than specified rowsPerPage

* Simplify date picker styles

* restore study date filters

* Fix about table styling

* fix take value for search

* Fix header sizing for viewer and list route

* Remove dead code

* Restore isLoading

* Update platform/ui/src/components/studyList/StudyList.styl

Co-Authored-By: Rodrigo Antinarelli <rodrigoantinarelli@gmail.com>

* Attempt first usage of translations w/ hooks

* Pull from react-i18n library

* Fit presets on to a single line

* add no results message

* Show error message in studyList table

* Update input selectors for e2e tests

* Make sure messages span all columns

* fix test selector for table results

* Skip hover for result rows

* fix imports

* Date filtering w/ config

* Default export

* Pushed to PageComponent

* Remove DropZone

This previously only worked for null/undefined studies. I'm unable to trigger the state by testing the data. This "might" have happened when using a fresh/empty PACS; but even an empty array of studies would not show
2019-10-28 14:47:57 -04:00
Danny Brown
70532a6cc6
test: percy snapshot workaround (#1111)
* Try workaround for percy snapshot

* Return our modified document

* test: some dark magic to make it possible to take screenshots of WebGL canvases

* Apply transformation directly to test DOM

* investigate: window:before:load

* Register flag in correct place; add experimental-webgl check

* Remaining canvas fixes

* Remove comment
2019-10-28 12:43:37 -04:00
ohif-bot
f0519920fa chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.22
 - @ohif/ui@0.57.1
 - @ohif/viewer@2.1.4
2019-10-28 03:19:19 +00:00
Danny Brown
0d21cc6ad0
fix: MIP styling (#1109)
* Try to restore previous select component as new component

* fix issue where background is gray in download panel
2019-10-27 23:10:20 -04:00
ohif-bot
dc502190ed chore(release): publish [skip ci]
- @ohif/viewer@2.1.3
2019-10-26 11:18:29 +00:00
Mirna Silva
7d009ef1d9 test: hotkeys in Cornerstone (#1097) 2019-10-26 07:12:03 -04:00
ohif-bot
777cca7471 chore(release): publish [skip ci]
- @ohif/viewer@2.1.2
2019-10-26 11:06:53 +00:00
Danny Brown
e4bbbfbbe4
Merge pull request #1103 from OHIF/dannyrb/fix/script-tag-template-changes
fix: update script-tag output to include config from default.js
2019-10-26 06:58:42 -04:00
dannyrb
10059adc57 make sure copy webpack plugin is available 2019-10-26 06:53:44 -04:00
dannyrb
c522ff3dda fix: update script-tag output to include config from default.js
instead of hardcoded config
2019-10-26 06:48:06 -04:00
ohif-bot
980516fcfc chore(release): publish [skip ci]
- @ohif/viewer@2.1.1
2019-10-26 04:06:48 +00:00
Emanuel Fiuza de Oliveira
2677170d67 fix: 🐛 JSON launch not working properly (#1089) (#1093)
* fix: 🐛 JSON launch not working properly (#1089)

JSON launch not working properly after QIDO/WADO switch #1089

Closes: #1089

* fix: 🐛 addressing review feedback (#1089)

Closes: #1089
2019-10-26 00:00:34 -04:00
ohif-bot
3452f1b91e chore(release): publish [skip ci]
- @ohif/extension-cornerstone@1.4.0
 - @ohif/extension-vtk@0.52.21
 - @ohif/core@1.6.0
 - @ohif/ui@0.57.0
 - @ohif/viewer@2.1.0
2019-10-26 02:53:05 +00:00
Romulo Bordezani
450e0981a5 feat: Snapshot Download Tool (#840)
* feat(Download ScreenShot Dialog)

- UI part of it

* feat(Download ScreenShot Dialog)

- UI part of it

* feat(Download ScreenShot Dialog)

- Missing Annotations showing controls

* feat(Download ScreenShot Dialog)

- Missing Annotations showing controls

* feat(Download ScreenShot Dialog)

- Partial Pull Request - Not ready to Prod yet.

* feat(Download ScreenShot Dialog)

  - UI - v2

* feat(Download ScreenShot Dialog)

  - UI - v3

* feat(Download ScreenShot Dialog)

  - Resizing tool

* feat(Download ScreenShot Dialog)

  - Resizing tool

* feat(Download ScreenShot Dialog)

  - Removing hardcoded CSS left

* feat(Download ScreenShot Dialog)

  - Bugfixes

* feat(Download ScreenShot Dialog)

  - Bugfixes - Escape closes the modal

* feat(Download ScreenShot Dialog)

  - Bugfixes - Responsive issues

* WIP: Refactoring DownloadDialog

* WIP: Refactoring DownloadDialog

* Align label and hide background canvas

* Add constantes and remove code not used

* Reset state on close modal

* Extract cornerstone to connect

* Fix modal zindex and add custom canvas classname

* CR Update: Add proptypes and fix useeffect warning

* CR Update: Refactor hooks, styles and imports

* CR Update: Remove important from css

* CR Update: Update core utils test of index
2019-10-25 22:46:32 -04:00
ohif-bot
8cf1e54490 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.20
 - @ohif/ui@0.56.1
 - @ohif/viewer@2.0.0
2019-10-26 02:25:52 +00:00
ladeirarodolfo
85f836cd91 fix: 🐛 Desc of meas.table not being updated on properly (#1094)
Is not possible to add Measurement Description if Relabel was not
previously selected

BREAKING CHANGE: 1013

Closes: #1013
2019-10-25 22:19:16 -04:00
Mirna Silva
f5560c11b0 test: Stack Scroll, Right-click to zoom, Middle-click to Pan (#1073)
* E2E tests: Stack Scroll, Right-click to zoom, Middle-click to Pan

* About modal tests and added some cypress selectors

* Checking app version number

* Removed accidental import

* Review fixes
2019-10-25 22:14:57 -04:00
ohif-bot
bef50f9298 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.19
 - @ohif/core@1.5.2
 - @ohif/viewer@1.12.2
2019-10-25 18:32:05 +00:00
Rodrigo Antinarelli
986b7ae2bf fix: set SR in ActiveViewport by clicking thumb (#1091) 2019-10-25 14:22:44 -04:00
ohif-bot
86c479ac04 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.18
 - @ohif/core@1.5.1
 - @ohif/viewer@1.12.1
2019-10-25 17:51:36 +00:00
James Petts
460e375f0a
fix: 🐛 Orthographic MPR fix (#1092)
* fix: 🐛 Orthographic MPR fix
2019-10-25 18:43:34 +01:00
ohif-bot
78344c2c66 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.17
 - @ohif/core@1.5.0
 - @ohif/viewer@1.12.0
2019-10-25 13:17:26 +00:00
James Petts
b451ce4407 fix: 🐛 Fix crosshairs location when using MIP (#1080) 2019-10-25 15:07:35 +02:00
ladeirarodolfo
21b586b08f feat: 🎸 Allow routes to load Google Cloud DICOM Stores in the Study List (#1069) 2019-10-25 14:49:48 +02:00
ohif-bot
3bbeb1c521 chore(release): publish [skip ci]
- @ohif/viewer@1.11.5
2019-10-24 20:23:16 +00:00
Danny Brown
7668b69f20
test: percy snapshot workaround (#1085)
* Try workaround for percy snapshot

* Return our modified document
2019-10-24 16:09:59 -04:00
Danny Brown
3a12138134
test: Try workaround for percy snapshot (#1084) 2019-10-24 15:54:06 -04:00
Danny Brown
97786b808c
ci: revert flags 2019-10-23 12:55:39 -04:00
Danny Brown
cd1baa1b36
ci: force flag 2019-10-23 12:41:44 -04:00
Danny Brown
3ae3bee452
ci: test recursive removal 2019-10-23 12:24:56 -04:00
ohif-bot
fd017c4512 chore(release): publish [skip ci]
- @ohif/viewer@1.11.4
2019-10-23 15:37:56 +00:00
Danny Brown
c680720ce5
fix: Revert "Revert "fix: MPR initialization"" (#1065)
* Revert "Revert "fix: MPR initialization (#1062)" (#1064)"

This reverts commit a6c1e6c717.

* fix: MPR Initialization

* fix e2e openStudy

* add isRequired for numRows and numColumns
2019-10-23 11:27:22 -04:00
ohif-bot
dfc4e89a91 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.16
 - @ohif/viewer@1.11.3
2019-10-23 10:44:45 +00:00
James Petts
13d337aaab
fix: 🐛 Switch to orhtographic view for 2D MPR (#1074) 2019-10-23 11:36:41 +01:00
ohif-bot
4f26940005 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.15
 - @ohif/viewer@1.11.2
2019-10-23 07:56:28 +00:00
James Petts
9d08e81aa5 perf: ️ Throttle UI refresh of synced WL value in vtk port (#1070) 2019-10-23 09:45:26 +02:00
ohif-bot
1a539d04c2 chore(release): publish [skip ci]
- @ohif/viewer@1.11.1
2019-10-23 01:12:25 +00:00
Rodrigo Antinarelli
5cc78c867f test: E2E Intermittent Failures (#1071) 2019-10-22 21:04:07 -04:00
ohif-bot
cefa480979 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.14
 - @ohif/ui@0.56.0
 - @ohif/viewer@1.11.0
2019-10-22 20:24:10 +00:00
Danny Brown
66537bf1b9
ci: specify our custom executor
fixes broken build
2019-10-22 16:15:09 -04:00
Danny Brown
862d426c71
ci: first attempt at adding a gated docker PR Publish (#1038) (#1041)
* ci: first attempt at adding a gated docker PR Publish (#1038)

* ci: first attempt at adding a gated docker PR Publish

* See if we can use contexts to inject variables after approval

* fix build command

* try alternative context

* docs: pull request template that spells out PR checklist

* change context back to Docker Hub

* Switch optional approval to another workflow

* Make docker builds faster

* Update .github/PULL_REQUEST_TEMPLATE/pull_request_template.md
2019-10-22 15:53:44 -04:00
ladeirarodolfo
e62f403fe9 feat: 🎸 Load spinner when selecting gcloud store. Add key on td (#1034)
* feat: 🎸 Load spinner when selecting gcloud store. Add key on td

* feat: 🎸 Code review. Translate loading study status

* feat: 🎸 Code review. Minor code refactoring

* fix: add missing study and index declerations

* test: Improviment on VTK beforeEach hook (#1057)

* feat: 🎸 Some improvements on table cell and react lifecycle

* feat: 🎸 Prevent component update on a not searchData changing

* feat: 🎸 Some cypress improv to pass ci

* feat: 🎸 Code reviewe and also fixing list for gcloud

* feat: 🎸 Code review. Add spinner on first load of store

* feat: 🎸 Code review. Centering loading list spinner icon
2019-10-22 14:40:23 -04:00
Mirna Silva
dea0ceab57 test: Adding Percy Snapshot on VTK, PDF and Microscopy tests (#1059)
* Adding Percy Snapshot on VTK, PDF and Microscopy tests

* Small improvement to always click on first search result

* Wait for search result

* Added timouts all over the code to avoid intermitted failures in CI

* Increasing Default Timeout and other configs

* Cleaning up the code

* try force enabling gpu

* Try custom executor with newer version of chrome

* Fix based on review comments

* Increased minimum thumbnails expected on VTK test

* Fix config validation

* Make sure we're using the chrome browser
2019-10-21 14:30:50 -04:00
Danny Brown
a6c1e6c717
Revert "fix: MPR initialization (#1062)" (#1064)
This reverts commit b03739428f.
2019-10-19 17:00:51 -04:00
Rodrigo Antinarelli
b03739428f fix: MPR initialization (#1062)
* fix: MPR initialization

* small refactoring
2019-10-18 14:29:00 -04:00
ohif-bot
2a52d9f05d chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.13
 - @ohif/viewer@1.10.3
2019-10-18 14:02:07 +00:00
James Petts
d5e21bb5bb
* chore: 🤖 Update react-vtkjs-viewport and refactor vtk extension
* chore: 🤖 Update react-vtkjs-viewport and refactor vtk extension
2019-10-18 14:53:43 +01:00
ohif-bot
04ffe3ec76 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.12
 - @ohif/viewer@1.10.2
2019-10-18 10:16:06 +00:00
James Petts
9cdf8b690b
* feat: 🎸 Progressive volume loading for vtk viewport (#1055)
* feat: 🎸 Progressive volume loading for vtk viewport

Adds progressive volume loading for vtkjs viewport whilst the frames are
streamed from PACs and rebuilt in the volume.

Closes: closes #1051

* Update to react-vtkjs-viewport 0.3.0
2019-10-18 10:43:23 +01:00
Mirna Silva
8d49b31d03 test: Improviment on VTK beforeEach hook (#1057) 2019-10-16 15:59:50 -04:00
Danny Brown
e4cfae7ad9
docs: add percy badge to readme 2019-10-16 11:51:45 -04:00
ohif-bot
e53041f630 chore(release): publish [skip ci]
- @ohif/viewer@1.10.1
2019-10-16 15:46:46 +00:00
Mirna Silva
35c54eac56 test: Test cases for extensions: VTK, HTML and PDF (#1036)
* Test cases for extensions: VTK, HTML and PDF

* Test Cases: Delete measurement, Relabel and Description through Contextmenu

* Fix: PDF, HTML and VTK extensions

* CI: running into different folders for PWA and Script-tag tests

* CI: running into different folders for PWA and Script-tag tests

* CI: running into different folders for PWA and Script-tag tests

* Fix for VTK tests and Cornerstone Eraser tool

* Removed VTK alias from Cornerstone aliases initialization

* Temporary fix for Eraser tool

* Test workaround

* Use juno for vtk

* Shift VTK tests to PWA folder
2019-10-16 11:39:41 -04:00
ohif-bot
e7be573328 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.11
 - @ohif/i18n@0.51.0
 - @ohif/ui@0.55.0
 - @ohif/viewer@1.10.0
2019-10-15 18:59:20 +00:00
Danny Brown
8a7706b286
test: percy visual testing (#1053)
* test: percy visual testing init

* Try PR checks with custom command

* Only run percy visual tests for PWA on merge for now
2019-10-15 14:52:23 -04:00
Rodrigo Antinarelli
c217b8bbde feat: Add browser info and app version (#1046)
* feat: Add browser info and app version

* quick fix

* lock file

* add build_num

* add screenshot e2e test

* quick test build_num

* revert header

* include i18n texts
2019-10-15 13:09:14 -04:00
ohif-bot
74f3cbc4b2 chore(release): publish [skip ci]
- @ohif/viewer@1.9.1
2019-10-15 16:10:17 +00:00
James Petts
d091cd604c
fix: 🐛 Remove debugger statement left in from last PR (#1052) 2019-10-15 17:03:29 +01:00
ohif-bot
3a4280163d chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.10
 - @ohif/core@1.4.0
 - @ohif/viewer@1.9.0
2019-10-15 15:18:15 +00:00
James Petts
2d75e01ea0
feat: 🎸 Only allow reconstruction of datasets that make sense (#1010)
* feat: 🎸 Only allow reconstruction of datasets that make sense

Only allow reconstruction of datasets which are imaging data, that have
frames in the same orientation, with the same size and make sense to be
reconstructed in 3D.

Closes: #561
2019-10-15 16:08:53 +01:00
Danny Brown
5c5a49486d
docs: more specific location for build output 2019-10-15 08:56:54 -04:00
ohif-bot
a8a57132a7 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.9
 - @ohif/ui@0.54.0
 - @ohif/viewer@1.8.0
2019-10-14 15:46:13 +00:00
Rodrigo Antinarelli
92c8996ed4 feat: Notification Service (#1011)
* WIP - Notification Service

* add snackbar provider into the main App component

* feat: Notification Service

* revert unmodified file

* Update DicomHtmlViewport.js

* update css classnames

* revert toolbarRow

* fix revert toolbarRow

* styles adjustments and hide method

* remove unecessary default options

* minor fixes

* fix long truncated messages

* move SnackbarContext to ui project, rename, export
2019-10-14 11:39:31 -04:00
ohif-bot
f07dca5fa4 chore(release): publish [skip ci]
- @ohif/viewer@1.7.0
2019-10-14 12:50:19 +00:00
Karthik Rao
c99e0d8a23 feat: Implement a 'Exit 2D MPR' button in the toolbar
* feat: Implement a 'Exit 2D MPR' button in the toolbar to act as a toggle when '2D MPR' button is clicked

* Move logic to exit MPR and toggling into ConnectedPluginSwitch and PluginSwitch. Also, discard the ConnectedExitPluginSwitch and ExitPluginSwitch components.

* Update ToolbarRow.js
2019-10-14 08:41:29 -04:00
ohif-bot
84144bc3ef chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.8
 - @ohif/core@1.3.2
 - @ohif/viewer@1.6.3
2019-10-14 11:15:08 +00:00
Erik Ziegler
5cbdd0c616
ci: Skip copying URL to clipboard on headless CI servers (#1043) 2019-10-14 13:08:59 +02:00
Chris McGee
fc015326c7 fix: Return display sets in StudyMetadata._createDisplaySetsForSeries (#1042) 2019-10-13 20:53:01 -04:00
ohif-bot
01860b6094 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.7
 - @ohif/core@1.3.1
 - @ohif/ui@0.53.4
 - @ohif/viewer@1.6.2
2019-10-11 18:56:39 +00:00
Danny Brown
cfdf827ff0
ci: fix broken build (#1033) 2019-10-11 14:50:12 -04:00
Danny Brown
ceb6837153
ci: speed up script tag e2e tests (#1032)
* show package bundle progress

* Ability to run "quick builds" for faster feedback on status checks (e2e)

* ci: speed up PR checks

* specify quick build value
2019-10-11 14:26:24 -04:00
Danny Brown
b01b0108b0
refactor: layout manager to viewer (#1026)
* docs: formatting

* Prefer numRows and numColumns to percentage width/height for layout

* fix: LayoutManager --> ViewportGrid (get out of UI component library)

* docs: remove outdated docs

* Don't expose ExampleDropTarget

* Revert thumnail entry drag source removal

* Update screaming tests

* fix drag-n-drop

* fix vtk mpr2d CC: @jamesapetts

* remove setSingleLayoutData

* remove vtk qualifier
2019-10-11 12:03:59 -04:00
Erik Ziegler
d6862e7418 ci: Set cache key to only use yarn.lock checksum (#1031)
* ci: Set cache key to only use yarn.lock checksum

* Use increasingly general pattern for restoring the cache

* Avoid running script tag e2e tests twice

* Performance improvements for CI

* Valid YAML

* Valid YAML?

* Valid YAML!!!!

* Update Node image, update yarn version

* circle

* serve
2019-10-11 11:40:21 -04:00
ohif-bot
beb7083e55 chore(release): publish [skip ci]
- @ohif/viewer@1.6.1
2019-10-11 13:13:57 +00:00
Erik Ziegler
412fe4e23f
fix: Switch token storage back to localStorage because in-memory was annoying for end users (#1030) 2019-10-11 14:53:49 +02:00
ohif-bot
659649e10b chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.6
 - @ohif/core@1.3.0
 - @ohif/viewer@1.6.0
2019-10-11 09:32:51 +00:00
Erik Ziegler
f431b277dd
ci: Disable docker layer caching because CircleCI doesn't let open source plans use it (#1028) 2019-10-11 11:14:54 +02:00
ladeirarodolfo
2bc361cdca feat: 🎸 Improve usability of Google Cloud adapter, including direct routes to studies (#989) 2019-10-11 09:59:38 +02:00
Erik Ziegler
c6f306c0de Revert "ci: Disable docker layer caching because CircleCI doesn't let open source plans use it"
This reverts commit c0ea27f6b3.
2019-10-11 08:52:07 +02:00
Erik Ziegler
c0ea27f6b3 ci: Disable docker layer caching because CircleCI doesn't let open source plans use it 2019-10-11 08:45:02 +02:00
ohif-bot
df8d4029f1 chore(release): publish [skip ci]
- @ohif/viewer@1.5.4
2019-10-10 20:07:32 +00:00
Mirna Silva
a36cb63926 tests: Test cases implemented: Cornerstone tools Clear and Eraser; Measurement panel Relabel and Description (#1014)
* Fix for test scripts that were failing in CI

* Test cases for tools: Length and Angle

* Test cases implemented: Scroll series, Levels, Pan, Reset, Zoom

* Added test cases for tools: Cine, More, Layout, Invert, Rotate, FlipH, FlipV

* Fixes made according to comments on PR review

* Fixes for failing scenarios: Layout and Cine

* Test cases implemented: Cornerstone tools Clear and Eraser; Measurement panel Relabel and Description

* Fix for CI failure
2019-10-10 15:46:41 -04:00
ohif-bot
e51529e6c9 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.5
 - @ohif/viewer@1.5.3
2019-10-10 16:57:21 +00:00
James Petts
750a150644
Merge pull request #1025 from JamesAPetts/vtkjsViewportPerformance
perf: ️ Update react-vtkjs-viewport for performance improvement
2019-10-10 17:37:34 +01:00
James A. Petts
a9d28d85da Merge remote-tracking branch 'upstream/master' into vtkjsViewportPerformance 2019-10-10 17:02:08 +01:00
James A. Petts
6ee5094cbe perf: ️ Update react-vtkjs-viewport for performance improvement 2019-10-10 16:57:53 +01:00
ohif-bot
6bfb9bb140 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.4
 - @ohif/ui@0.53.3
 - @ohif/viewer@1.5.2
2019-10-10 02:41:15 +00:00
Danny Brown
db5b760432
ci: skip minimize flag (#1023)
* Better css chunk filenames depending on context

* skip minimize flag to speed up builds that are timing out (short-term fix)

* make sure our custom TerserJS config is actually applied

* Use SKIP_MINIMIZE flag for netlify and demo builds
2019-10-09 22:18:06 -04:00
Igor Octaviano
e7de8be2d8 fix: 🎸 switch ohif logo from text + font to SVG (#1021)
currently we are using font + text, not it was changed to use svg
instead

Closes: 723
2019-10-09 22:15:53 -04:00
ohif-bot
cb2088daf7 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@1.3.1
 - @ohif/extension-vtk@0.52.3
 - @ohif/ui@0.53.2
 - @ohif/viewer@1.5.1
2019-10-09 19:55:40 +00:00
Igor Octaviano
2a743554b6 fix: 🐛 set current viewport as active when switching layouts (#1018)
* fix: 🐛 set current viewport as active when switching layouts

check if current viewport index is less than the current layout lenght
and set 0 if so or keep current selected cell index as active viewport

Closes: 999

* chore: 🤖 commenting out docker layer caching in the short-term

commenting out docker layer caching in the short-term

* refactor: 💡 refactor layout matrix index conditional
2019-10-09 15:37:26 -04:00
Igor Octaviano
a28984ef1f fix: 🐛 set tools bidirectional, eraser and annotate command (#1020)
annotate, bidirectional and eraser had types as command but they should
be typed as setToolActive

Closes: 981
2019-10-09 15:30:00 -04:00
Rodrigo Antinarelli
95e5e11d09 test: E2E Tests - Thumbnail loading (#1017)
* fix: E2E Tests - Thumbnail loading

* rename data-cy attr
2019-10-09 12:57:24 -04:00
ohif-bot
ff9f199850 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@1.3.0
 - @ohif/viewer@1.5.0
2019-10-09 14:45:40 +00:00
Danny Brown
1cc94f36a7
feat: Multiple fixes and implementation changes to react-cornerstone-viewport
* Update props for new react-cornerstone-viewport implementation

* Create an preRegistration hook for the cornerstone extension to setup cornerstone tools (takes configuration)

* Isolate measurements panel logic

* reorder extension registration

* remove unused setupTools

* Restore CINE connection

* fix stack prefetcher toggling

* Cleanup OHIFCornerstoneViewport props

* updated yarn lock

* bust yarn.lock to get updated react-cornerstone-viewport

* fix review comment; us isActive to better show it's influence on prefetch

* refactor: remove pass through method

* review performance optimization

* review; comment out unused variable

* shift tool under correct comment

* Use alternative csTools config, if provided

* Note regarding config options
2019-10-09 10:23:14 -04:00
ohif-bot
5c5223fcf1 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.2
 - @ohif/core@1.2.0
 - @ohif/viewer@1.4.5
2019-10-09 11:27:27 +00:00
James Petts
8513ad9ef3 perf: 🎸 Update vtk viewport for faster image reconstruction (#1016) 2019-10-09 13:13:13 +02:00
Emanuel Fiuza de Oliveira
66d8bc6d6f fix: OHIF-1002 Study lazy load should be true by default (#1004) 2019-10-07 16:31:47 -04:00
Jody Zeitler
0064a4b1cd feat: Allow a server requestOptions.auth to be a function that returns the Authorization header. (#928) 2019-10-06 21:07:44 -04:00
ohif-bot
74ce89b22b chore(release): publish [skip ci]
- @ohif/viewer@1.4.4
2019-10-07 01:07:06 +00:00
Mirna Silva
c92975f555 test: Fix for test scripts that were failing in CI (#968)
* Fix for test scripts that were failing in CI
* Test cases for tools: Length and Angle
* Test cases implemented: Scroll series, Levels, Pan, Reset, Zoom
* Added test cases for tools: Cine, More, Layout, Invert, Rotate, FlipH, FlipV
* Fixes made according to comments on PR review
* Fixes for failing scenarios: Layout and Cine
2019-10-06 20:57:49 -04:00
ohif-bot
ce6c0533a0 chore(release): publish [skip ci]
- @ohif/i18n@0.50.5
 - @ohif/viewer@1.4.3
2019-10-04 16:55:28 +00:00
Rodrigo Antinarelli
4df624b8c4 fix: CineDialog buttons label (#998)
* fix: CineDialog buttons label

* Revert "fix: CineDialog buttons label"

This reverts commit 48ea7a28e50b845c4939a8aaf2d95eba49d2c102.

* fix: CineDialog buttons label
2019-10-04 12:46:39 -04:00
ohif-bot
e064fd353e chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.1
 - @ohif/ui@0.53.1
 - @ohif/viewer@1.4.2
2019-10-04 13:37:03 +00:00
Sanders DeNardi
458d310c78 fix: Move Series Information to Separate Row (#990)
* fix ThumbnailEntry alignment

* move series information to separate row
2019-10-04 09:26:05 -04:00
ohif-bot
73bc4d9094 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.0
 - @ohif/viewer@1.4.1
2019-10-03 14:05:24 +00:00
James Petts
7709ebb107
Merge pull request #993 from JamesAPetts/vtkViewportSubscriptionManager
feat: 🎸 Synced Window Leveling
2019-10-03 14:49:19 +01:00
James A. Petts
559b637290 feat: 🎸 Synced Window Leveling
Syncs window leveling for vtkjs viewports in MPR 2D mode.

Closes: #558
2019-10-03 14:29:56 +01:00
ohif-bot
36910f2b47 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.51.3
 - @ohif/core@1.1.0
 - @ohif/ui@0.53.0
 - @ohif/viewer@1.4.0
2019-10-03 08:02:00 +00:00
Emanuel Fiuza de Oliveira
9e10c2b2de feat: Use QIDO + WADO to load series metadata individually rather than the entire study metadata at once (#953) 2019-10-03 09:51:29 +02:00
ohif-bot
c5cbd77cb9 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.51.2
 - @ohif/core@1.0.2
 - @ohif/viewer@1.3.3
2019-10-02 07:49:25 +00:00
Erik Ziegler
b3b4c10e4c
fix: Temporarily sort SEG files to the end of the display set list as a workaround for several metadata issues (#987) 2019-10-02 09:39:38 +02:00
ohif-bot
855020d730 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.51.1
 - @ohif/viewer@1.3.2
2019-10-01 20:36:02 +00:00
Zaid Safadi
8503cbce4e fix(rotate): Use new MPR rotate in react-vtkjs-viewport 0.1.2 (#964) 2019-10-01 22:21:31 +02:00
ohif-bot
c8667fb2d6 chore(release): publish [skip ci]
- @ohif/viewer@1.3.1
2019-10-01 10:07:08 +00:00
Erik Ziegler
674ca9f96f
fix: Exit MPR mode if Layout is changed (#984) 2019-10-01 11:55:58 +02:00
ohif-bot
7a4b97b4e8 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.51.0
 - @ohif/ui@0.52.0
 - @ohif/viewer@1.3.0
2019-10-01 08:16:51 +00:00
ladeirarodolfo
c79c0c301d feat: 🎸 MPR UI improvements. Added MinIP, AvgIP, slab thickness slider and mode toggle (#947) 2019-10-01 10:06:56 +02:00
ohif-bot
ff5060f276 chore(release): publish [skip ci]
- @ohif/viewer@1.2.8
2019-10-01 07:42:58 +00:00
Erik Ziegler
dafb26b34b
chore: Fix dev server so that it can be accessed on LAN from other devices (#983) 2019-10-01 09:32:50 +02:00
ohif-bot
c4f9d5e750 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.50.23
 - @ohif/ui@0.51.3
 - @ohif/viewer@1.2.7
2019-10-01 07:11:22 +00:00
Erik Ziegler
cf40a8388c
fix: Address issues with touch devices and drag/drop causing crashes (#982) 2019-10-01 09:00:55 +02:00
Erik Ziegler
d596ab5c3d
ci: Try to fix codecov threshold (#976) 2019-09-30 12:24:14 +02:00
Erik Ziegler
72198eee7d
ci: Increase build timeout limit as a stopgap measure (#977) 2019-09-30 12:19:44 +02:00
Danny Brown
057f68a9b4
fix: yarn run start as alias for yarn run dev (#973) 2019-09-28 20:25:47 -04:00
Steve Pieper
034ca64d6b docs: Update node version in readme (#971)
Fixes #970
2019-09-28 19:10:20 -04:00
ohif-bot
4a0901aee9 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.50.22
 - @ohif/core@1.0.1
 - @ohif/viewer@1.2.6
2019-09-27 15:42:12 +00:00
Bhavesh Pandey
d0ec9cf0e0 fix: Check for Value in 00081155 sequence (Few patient protocol images doesn't have this value) and removed a duplicate declaration (#921) 2019-09-27 11:30:26 -04:00
ohif-bot
71bea0d4d8 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@1.2.5
 - @ohif/viewer@1.2.5
2019-09-27 13:18:31 +00:00
Danny Brown
e607ed2aa0
fix: version bump issue (#963)
* Revert "fix: version bump issue (#962)"

This reverts commit c80ea17cc2.

* fix: stick
2019-09-27 09:04:29 -04:00
ohif-bot
4939f43509 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.0.0
 - @ohif/viewer@2.0.0
2019-09-27 12:54:25 +00:00
Danny Brown
c80ea17cc2
fix: version bump issue (#962)
* fix: version bump issue

* fix: catch the cornerstone-bump as well
2019-09-27 08:43:40 -04:00
ohif-bot
aa7dc1e2c1 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@2.0.0
 - @ohif/extension-dicom-html@1.0.0
 - @ohif/extension-dicom-pdf@1.0.0
 - @ohif/extension-vtk@0.50.21
 - @ohif/core@1.0.0
 - @ohif/viewer@2.0.0
2019-09-27 11:58:23 +00:00
ladeirarodolfo
e7e1a8a6cd fix: 🐛 Add DicomLoaderService & FileLoaderService to fix SR, PDF, and SEG support in local file and WADO-RS-only use cases (#862)
* fix: 🐛 Local file: failing when retrieving segmentation data

Fix segmentation data retrieval issues for local file. Changed from
fecthing to use cornerstone loadAndCache method

BREAKING CHANGE: DICOM Seg

Closes: part of #838

* Switch SEG retrieval to WADO-RS

* Forgot a debugger

* refactor: 💡 Code refactor. Minor changes into methods

* fix: 🐛 Load local files: PDF

Items:
1. FileLoaderService: used for serveral operations on local files(load it,  get list of studies, group them, accepting dicom and pdf)
2. DicomLoaderService: used for loading dicom based on dataset and studies. Depending on type of dicom loader might change. WIP
3. Refactor PDF and handleSegmentationStorage to use DicomLoaderService

* fix: 🐛 Code review

* fix: 🐛 Code review. Changed:Folder organization and dicom file

Move fileLoaderService and others to a specific folder. When loading
dicom file change to only retrieve the file(not use cornerstone to cache
or anything else).

* fix: 🐛 Code review. Move dicomLoaderService to core

Moved dicomLoaderService to ohif/core and localFileLoaders to a specific
folder.

* fix: 🐛 Code review

Simplified method to get study for dicom file. Added error handling on
file loading. DicomLoaderService to be exposed on ohif/core/utils
instead.

* fix: 🐛 Reduce local load to one method only

Reduced local file load to one method only

* fix: 🐛 HTML to use dicomLoaderService. Prefer wadors than (uri)

* fix: 🐛 Code implementation for multiframe files

* fix: 🐛 Code review. Default local loader to dicom

Closes: 838

* fix: 🐛 Code review. Use relative path to require DICOMWeb

Closes: 838

* fix: 🐛 Code review. Fix unit test. Added DicomLoaderService mod

Closes: 838

* fix: 🐛 Code review. Add 'Seg' on left thumb

When getting/creating dataset get modality for file/image read

Closes: 838
2019-09-27 13:47:08 +02:00
ohif-bot
e66c27affb chore(release): publish [skip ci]
- @ohif/viewer@1.2.3
2019-09-27 11:10:33 +00:00
Danny Brown
ae26904885
Revert "* fix: 🐛 Enabling workbox to cache webfonts and fonts-stylesheets, add local fonts for UMD build (#906)" (#961)
This reverts commit 69b96478cb.
2019-09-27 06:54:47 -04:00
ohif-bot
8bb730318a chore(release): publish [skip ci]
- @ohif/viewer@1.2.2
2019-09-27 09:20:09 +00:00
Gustavo André Lelis
69b96478cb * fix: 🐛 Enabling workbox to cache webfonts and fonts-stylesheets, add local fonts for UMD build (#906)
* fix: 🐛 commonjs/umd fonts import

Importing font into index-umd.js and creating a simple font css file
with font-face

Closes: #724

* fix: 🐛 Enabling workbox to cache webfonts and fonts-stylesheets

Closes: #724

* fix: 🐛 Adding all type of fonts from google - Roboto

Closes: #724
2019-09-27 11:11:05 +02:00
ohif-bot
816666df7b chore(release): publish [skip ci]
- @ohif/viewer@1.2.1
2019-09-26 18:24:46 +00:00
Danny Brown
e375a4ab11
fix: google cloud support w/ docker (via env var) (#958)
* fix: make sure google config is in output

* fix: update config sub to use new paths and file names
2019-09-26 14:08:44 -04:00
ohif-bot
7f4d71e412 chore(release): publish [skip ci]
- @ohif/viewer@1.2.0
2019-09-26 17:56:20 +00:00
ladeirarodolfo
a90605c82d feat: 🎸 React custom component on toolbar button (#935)
* feat: 🎸 React custom component on toolbar button

Toolbar button can consume/render react custom components. Its only
required to expose the component into toolbar definitions
(toolbarModule)

Closes: 924

* feat: 🎸 Core review. Minor changes on documentation

Closes: 924

* feat: 🎸 Code review

* feat: 🎸 Code review. Changing function call to variable decl
2019-09-26 13:45:19 -04:00
ohif-bot
5b523c2afa chore(release): publish [skip ci]
- @ohif/extension-vtk@0.50.20
 - @ohif/ui@0.51.2
 - @ohif/viewer@1.1.14
2019-09-26 14:21:10 +00:00
Gustavo André Lelis
5551f817e3 fix: 🐛 Set series into active viewport by clicking on thumbnail (#945)
* fix: 🐛 Set series into active viewport by clicking on thumbnail

Users should be able to set the series for the active viewport by
clicking it's thumbnail into Study browser

Closes: #895

* fix: 🐛 Set series into active viewport by clicking on thumbnail

Small refactor into onClick data callback and thumbnailClick function

Closes: #895

* fix: 🐛 Refactor thumbnail click code changes

* fix: 🐛 We must clear the sopInstanceUid if we don't update it together with the viewportSpecificData, preventing console warning.

* fix: 🐛  Cleaning up a few more code changes
2019-09-26 10:08:30 -04:00
ohif-bot
a9ca3fa026 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@1.2.2
 - @ohif/extension-dicom-html@0.50.8
 - @ohif/extension-dicom-microscopy@0.50.6
 - @ohif/extension-vtk@0.50.19
 - @ohif/viewer@1.1.13
2019-09-26 12:24:19 +00:00
Erik Ziegler
89380353d2
fix: Add some code splitting for PWA build (#937)
* fix: Add some code splitting for PWA build

* Fix missing files
2019-09-26 11:35:13 +02:00
ohif-bot
edb86fad55 chore(release): publish [skip ci]
- @ohif/viewer@1.1.12
2019-09-26 03:56:47 +00:00
Danny Brown
395a1be3fb
Merge pull request #952 from dannyrb/fix/docker-ci
ci: docker publish (first attempt)
2019-09-25 23:45:59 -04:00
dannyrb
65d852b9e4 enable ci 2019-09-25 23:39:42 -04:00
dannyrb
e797a3a141 Add modified dockerfile from previous version 2019-09-25 23:16:00 -04:00
Danny Brown
246936f90b
Merge pull request #949 from TZubiri/2dmpr-ui-fix
ui fix: Made mpr more accessible from toolbar.
2019-09-24 21:29:43 -04:00
Tomas Zubiri
c57298475a UI fix: Collapsed 2dMPR button to main toolbar 2019-09-24 18:43:32 -03:00
Tomas Zubiri
6a5ebb3e25 initial attempt to simplify code and ui 2019-09-24 18:20:06 -03:00
ohif-bot
291b23aee1 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.50.18
 - @ohif/core@0.50.10
 - @ohif/viewer@1.1.11
2019-09-23 13:17:23 +00:00
Ivan Aksamentov
72427fe2ff fix: Avoid using variable name "module" (#942)
On some configurations variables named `module` may clash with the predefined JS global.
resolves #940
2019-09-23 15:05:26 +02:00
Erik Ziegler
882d04c9bf
chore: add husky for automatic linting of staged files (#938) 2019-09-20 13:44:52 +02:00
Erik Ziegler
d1a24bc9d9
ci: Update terser-webpack-plugin (#936) 2019-09-19 22:49:15 +02:00
ohif-bot
16a87fa75f chore(release): publish [skip ci]
- @ohif/extension-vtk@0.50.17
 - @ohif/ui@0.51.1
 - @ohif/viewer@1.1.10
2019-09-19 13:13:23 +00:00
Erik Ziegler
6fdac4d605
fix: Use HTML5Backend for drag-drop if the device does not support touch (#927)
* fix: Use HTML5Backend for drag-drop if the device does not support touch, since it's less buggy

* Forgot React when using jsx
2019-09-19 14:57:04 +02:00
ohif-bot
6192502fe0 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.50.16
 - @ohif/viewer@1.1.9
2019-09-19 12:50:18 +00:00
Erik Ziegler
2341b32638
fix: Set transfer function range to data range when loading volumes in VTK (#930) 2019-09-19 14:39:36 +02:00
ohif-bot
45aeaec916 chore(release): publish [skip ci]
- @ohif/viewer@1.1.8
2019-09-19 12:34:20 +00:00
Erik Ziegler
66b84ae9c2
ci: Use development mode for e2e tests for now until we have a better alternative (#934) 2019-09-19 14:20:06 +02:00
ohif-bot
bc28fe26ac chore(release): publish [skip ci]
- @ohif/extension-vtk@0.50.15
 - @ohif/viewer@1.1.7
2019-09-19 12:13:07 +00:00
Erik Ziegler
7f642a05da
fix: Stop adding empty labelmap to VTK Viewports for now. Wait until paint tools are implemented (#926) 2019-09-19 13:59:50 +02:00
Erik Ziegler
66a0aadcce
fix: Bump VTK viewport dependency (#929) 2019-09-19 12:54:10 +02:00
ohif-bot
808af7ee96 chore(release): publish [skip ci]
- @ohif/viewer@1.1.6
2019-09-19 10:01:01 +00:00
Erik Ziegler
10b5e071f4 ci: Comment out an E2E test that is failing on CI due to timing issues 2019-09-19 11:40:36 +02:00
Erik Ziegler
fe1969b071 ci: Add progress reporting to build step so CircleCI won't think the step has timed out 2019-09-19 11:40:36 +02:00
Danny Brown
16b2a8295f
chore: stalebot misbehaving 2019-09-18 16:15:33 -04:00
ohif-bot
d33bb4210d chore(release): publish [skip ci]
- @ohif/extension-cornerstone@1.2.1
 - @ohif/extension-vtk@0.50.14
 - @ohif/core@0.50.9
 - @ohif/viewer@1.1.5
2019-09-17 03:00:30 +00:00
Danny Brown
ab681b9929
Merge pull request #920 from dannyrb/fix/bump-cornerstone-tools-version
fix: bump cornerstone-tools to latest version
2019-09-16 22:36:04 -04:00
dannyrb
f52daca5e5 fix: force rebuild of yarn.lock 2019-09-16 22:19:18 -04:00
dannyrb
4afc88c0e5 fix: bump cornerstone-tools version in peerDeps 2019-09-16 22:14:18 -04:00
dannyrb
f519f8609c fix: bump cornerstone-tools to latest version 2019-09-16 21:53:06 -04:00
ohif-bot
e27d5b58a4 chore(release): publish [skip ci]
- @ohif/viewer@1.1.4
2019-09-17 01:39:08 +00:00
Mirna Silva
a18b292a9d test: [TEST E2E] Drag and drop thumbnail into viewport (#904)
* TEST E2E: Drag and drop thumbnail into viewport
* TEST E2E: Drag and drop thumbnail into viewport
* fix: add pollyfill to script-tag template
* Add wait's to command
* Try to store artifacts
* ci: updated artifact location
* Changing Patient to MisterMR
* Refactors based on PR comments
* Adding new sub-folders to separate the testing scripts according to context/features
* Adding test cases for Side Panels Measurements and Series
* Removing duplicated file OHIFStudyViewer.spec.js
2019-09-16 21:26:14 -04:00
Danny Brown
7bd1507a89
chore: bad stale bot 2019-09-16 13:53:41 -04:00
Danny Brown
a634177578
chore: bad stale bot 2019-09-16 12:53:05 -04:00
ohif-bot
fe4d71ad0b chore(release): publish [skip ci]
- @ohif/viewer@1.1.3
2019-09-16 14:41:16 +00:00
ladeirarodolfo
f723546e6b fix: 🐛 Fix issue on not loading gcloud (#919)
Fixed issue on not loading gcloud. Error on name variable declaration
2019-09-16 10:26:59 -04:00
Danny Brown
348b8949d4
docs: update code sandbox links to use sandboxes in our team (#915) 2019-09-13 14:54:15 -04:00
ohif-bot
26e037dee7 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@1.2.0
 - @ohif/viewer@1.1.2
2019-09-12 19:34:57 +00:00
Romulo Bordezani
26be96783d feat(Annotate): Add annotate tool back to toolbar
* feat(Arrow Annotate Tool)

* feat(Arrow Annotate Tool)

* refactor: label "Arrow Annotate" to "Annotate"

to match viewer-legacy
2019-09-12 15:22:09 -04:00
ohif-bot
029ba1fb4a chore(release): publish [skip ci]
- @ohif/extension-cornerstone@1.1.1
 - @ohif/extension-dicom-html@0.50.7
 - @ohif/extension-vtk@0.50.13
 - @ohif/viewer@1.1.1
2019-09-12 10:40:45 +00:00
James Petts
56d658f02d
Merge pull request #913 from JamesAPetts/dcmjs0.6.1
chore: 🤖 Upgrade dcmjs to 0.6.1
2019-09-12 11:24:36 +01:00
James A. Petts
64921b905f Cosmetic change to trigger netlify rebuild. 2019-09-12 10:26:36 +01:00
James A. Petts
d00d7daf41 chore: 🤖 Upgrade dcmjs to 0.6.1 2019-09-12 10:22:46 +01:00
ohif-bot
144a173306 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@1.1.0
 - @ohif/extension-vtk@0.50.12
 - @ohif/ui@0.51.0
 - @ohif/viewer@1.1.0
2019-09-12 03:07:49 +00:00
Romulo Bordezani
e40cbae113 feat(BidirectionalTool): Add BidrectionalTool to "more" menu (#911)
* feat(Bidirectional Tool)

* feat(Bidirectional Tool)
2019-09-11 22:53:06 -04:00
Romulo Bordezani
698d274c64 feat(EraserTool): add eraserTool to @ohif/extension-cornerstone (#912)
This includes `ui` changes in the same commit, so it will see a feature bump as well
2019-09-11 16:28:14 -04:00
ladeirarodolfo
c221dd86d2 feat: 🎸 Load local file or folder using native dialog (#870)
Created to specialized dropzone elements to take care of loading local
file/folder from dialog

Closes: 847
2019-09-10 23:30:53 -04:00
Danny Brown
a8c3d1b9a2
docs: runtime extensions (#908)
* docs: runtime extensions

* docs: small readability changes

* docs: clarity
2019-09-10 22:50:13 -04:00
ohif-bot
6cce8e6720 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@1.0.1
 - @ohif/extension-dicom-html@0.50.6
 - @ohif/extension-dicom-microscopy@0.50.5
 - @ohif/extension-dicom-pdf@0.50.4
 - @ohif/extension-vtk@0.50.11
 - @ohif/i18n@0.50.4
 - @ohif/viewer@1.0.5
2019-09-10 20:38:26 +00:00
Danny Brown
e8dbe3e1b6
Merge pull request #907 from dannyrb/publish/react-ohif-org
fix: runtime extension usage
2019-09-10 16:03:50 -04:00
dannyrb
ac5dbda3b2 fix: simplify runtime-extension usage 2019-09-10 16:02:08 -04:00
dannyrb
bf77b3959a chore: bump react peer deps 2019-09-10 15:12:59 -04:00
ohif-bot
c6a6bce0b8 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.50.10
 - @ohif/core@0.50.8
 - @ohif/viewer@1.0.4
2019-09-10 02:48:31 +00:00
dannyrb
3f9decc6d5 Merge branch 'master' of github.com:OHIF/Viewers into upstream-master 2019-09-09 22:33:39 -04:00
dannyrb
1b1ff8068d docs: updated embedded-viewer recipe 2019-09-09 22:33:33 -04:00
ohif-bot
eb1a900b13 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.50.9
 - @ohif/core@0.50.7
 - @ohif/viewer@1.0.3
2019-09-10 02:13:05 +00:00
dannyrb
e8938111d5 ci: add checkout and restore persist 2019-09-09 21:57:01 -04:00
Danny Brown
73122e717c
Merge pull request #905 from dannyrb/fix/regenerator-runtime-issue-for-umd-build
Misc. small script tag and config clean-up items
2019-09-09 21:47:21 -04:00
dannyrb
300fe06b60 chore: remove unused template 2019-09-09 21:46:38 -04:00
dannyrb
37e5387cf0 ci: update all of release to use cypress job names 2019-09-09 21:43:10 -04:00
dannyrb
7c2860789d without numbers 2019-09-09 21:41:50 -04:00
dannyrb
df35b1bc06 ci: try using new names 2019-09-09 21:41:14 -04:00
dannyrb
0460a487ec Testing w/ no release steps 2019-09-09 21:39:31 -04:00
dannyrb
0195a3d860 ci: See if we can wait for dynamic job names 2019-09-09 21:37:39 -04:00
dannyrb
2740e34ad3 ignore video output 2019-09-09 21:34:34 -04:00
dannyrb
61d2caef96 ci: update RELEASE to use new cypress tests 2019-09-09 21:34:23 -04:00
dannyrb
a88f37595d ci: upgrade cypress orb 2019-09-09 21:33:38 -04:00
Danny Brown
42d80a3e60
re-add working directory key 2019-09-09 18:05:03 -04:00
dannyrb
51143ffe35 Merge branch 'fix/regenerator-runtime-issue-for-umd-build' of github.com:dannyrb/Viewers into fix/regenerator-runtime-issue-for-umd-build 2019-09-09 16:40:21 -04:00
dannyrb
76f7b00b65 ci: script tag e2e tests 2019-09-09 16:40:07 -04:00
Danny Brown
64ca61745b
Merge branch 'master' into fix/regenerator-runtime-issue-for-umd-build 2019-09-09 15:52:13 -04:00
dannyrb
ababe63a55 fix: on-brand library global name 2019-09-09 15:50:45 -04:00
dannyrb
6c2217f2e5 chore: remove unused relativeWebWorkerScriptsPath config key 2019-09-09 15:50:10 -04:00
dannyrb
cf9bec3ffa Merge branch 'fix/regenerator-runtime-issue-for-umd-build' of github.com:dannyrb/Viewers into fix/regenerator-runtime-issue-for-umd-build 2019-09-09 15:49:28 -04:00
dannyrb
32bc47d315 fix: remove requestOptions when key is not needed 2019-09-09 15:49:12 -04:00
ohif-bot
1fb98884d2 chore(release): publish [skip ci]
- @ohif/viewer@1.0.2
2019-09-09 16:35:06 +00:00
Danny Brown
7f8f9dc073
Merge pull request #902 from dannyrb/fix/regenerator-runtime-issue-for-umd-build
fix: import regenerator-runtime for umd build
2019-09-09 12:26:33 -04:00
Danny Brown
c6f89495b2
Merge branch 'master' into fix/regenerator-runtime-issue-for-umd-build 2019-09-09 12:26:20 -04:00
dannyrb
bad987a06b fix: import regenerator-runtime for umd build 2019-09-09 12:25:37 -04:00
ohif-bot
c73abb518f chore(release): publish [skip ci]
- @ohif/extension-cornerstone@1.0.0
 - @ohif/extension-dicom-html@0.50.5
 - @ohif/extension-vtk@0.50.8
 - @ohif/core@0.50.6
 - @ohif/viewer@1.0.1
2019-09-09 15:17:11 +00:00
James Petts
d12d01215e
Merge pull request #900 from JamesAPetts/cst4
Upgrade to cornerstoneTools 4.0.1 and dcmjs 0.6.0
2019-09-09 16:03:10 +01:00
James A. Petts
86adb5113a feat: 🎸 Upgraded to cornerstoneTools 4.0
Upgraded OHIF to run on cornerstone-tools 4.0.1 and dcmjs 0.6.0.

BREAKING CHANGE: n
2019-09-09 15:43:48 +01:00
James A. Petts
5220cd371c Upgrade to cornerstoneTools 4.0.1 and dcmjs 0.6.0 2019-09-09 15:32:52 +01:00
Danny Brown
16b063a504
ci: fix docs deploy-preview redirect (#878)
* docs: filling in missing readme sections

* ci: fix docs deploy-preview redirect
2019-09-06 15:09:20 -04:00
ohif-bot
d0d75987f7 chore(release): publish [skip ci]
- @ohif/viewer@1.0.0
2019-09-06 18:40:55 +00:00
ladeirarodolfo
7c4ee734fa refactor: 💡 React components to consume appConfig using Context (#852)
* refactor: 💡 React components to consume appConfig using Context

React components to consume app configuration using React Context and
React Hooks. Non React components to continue using global variable
window.config. Related documentation also changed.

Closes: #725

* refactor: 💡 Removing unecessary code

On current React component there is no need to import useContext method
from React, so, removing it.

* refactor: 💡 Code review

Code review. Minor changes based on review inputs and moving userManager
to an init method

BREAKING CHANGE: #725

Closes: #725

* docs: don't include implementation detail in docs

* docs: don't include implementation detail in docs

* docs: no need to specify implementation details in employment recipe

* docs: no need to specify implementation details in deployment recipe
2019-09-06 14:31:26 -04:00
ohif-bot
a187783e0d chore(release): publish [skip ci]
- @ohif/viewer@0.50.21
2019-09-06 18:23:46 +00:00
Danny Brown
ada05b01a7
Merge pull request #874 from dannyrb/docs/monorepo-updates-3
docs: contributing, tests, react-vtkjs-viewport link
2019-09-06 14:13:35 -04:00
Danny Brown
1a44d78277
Merge branch 'master' into docs/monorepo-updates-3 2019-09-06 14:13:22 -04:00
dannyrb
691a073b86 docs(build-pwa): updated commands, file locations, point to configs instead of duplicating 2019-09-06 10:27:02 -04:00
dannyrb
5a54564bff A way to list linked packages 2019-09-06 10:05:02 -04:00
dannyrb
94b625d4e6 fix: viewer project should build output before publish 2019-09-06 09:51:45 -04:00
dannyrb
8f730a5124 Merge branch 'docs/monorepo-updates-3' of github.com:dannyrb/Viewers into docs/monorepo-updates-3 2019-09-06 09:45:26 -04:00
dannyrb
0ff4d90878 docs(contributing): react-vtkjs-viewport, tests 2019-09-06 09:45:13 -04:00
ohif-bot
c10342c05c chore(release): publish [skip ci]
- @ohif/extension-cornerstone@0.50.5
 - @ohif/extension-dicom-html@0.50.4
 - @ohif/extension-vtk@0.50.7
 - @ohif/ui@0.50.4
 - @ohif/viewer@0.50.20
2019-09-06 02:42:57 +00:00
Danny Brown
a047994e3d
Merge branch 'master' into docs/monorepo-updates-3 2019-09-05 22:38:24 -04:00
dannyrb
672ad2d0e7 docs(contributing): example gif 2019-09-05 22:37:17 -04:00
Danny Brown
98bd960014
Merge pull request #873 from dannyrb/docs/monorepo-updates-3
docs: contributing and recipes
2019-09-05 22:33:49 -04:00
dannyrb
9cf30eacb2 docs(contributing): link cornerstone-tools 2019-09-05 22:33:21 -04:00
dannyrb
373b01ac50 docs(contributing): yarn link instead of yalc 2019-09-05 22:27:01 -04:00
dannyrb
9120db49f1 fix: set NODE_ENV for production build 2019-09-05 21:56:19 -04:00
Danny Brown
f02e0339a8
Merge branch 'master' into docs/monorepo-updates-3 2019-09-05 21:53:59 -04:00
dannyrb
20d6680e06 chore: update references to ohif-core and react-viewerbase 2019-09-05 21:52:45 -04:00
ohif-bot
2735b0a6eb chore(release): publish [skip ci]
- @ohif/viewer@0.50.19
2019-09-06 01:43:11 +00:00
dannyrb
2b1f2104cd docs(contributing): move to own directory 2019-09-05 21:42:07 -04:00
Danny Brown
d03d9e9a09
Merge pull request #872 from dannyrb/docs/monorepo-updates-3
docs: building, contributing, local package dev
2019-09-05 21:29:54 -04:00
dannyrb
f9eb2c0ae1 chore: update yarn lock 2019-09-05 21:28:57 -04:00
dannyrb
974367834a chore: clearer use of watch 2019-09-05 21:28:39 -04:00
dannyrb
4aa7cbd641 fix: @ohif/viewer package build 2019-09-05 21:28:18 -04:00
dannyrb
ee88672d37 Revert "chore: full --watch tag to reduce confusion"
This reverts commit dffe1d51cf.
2019-09-05 21:26:42 -04:00
dannyrb
dffe1d51cf chore: full --watch tag to reduce confusion 2019-09-05 21:25:31 -04:00
dannyrb
c5936d412e docs(deployment): updated package name 2019-09-05 21:23:38 -04:00
dannyrb
d588ddd830 docs(embedded-viewer): new tag, less dependencies, 2019-09-05 21:22:54 -04:00
dannyrb
81c2f60731 docs: editorial 2019-09-05 21:08:14 -04:00
dannyrb
a715c4bd1b Merge branch 'docs/monorepo-updates-3' of github.com:dannyrb/Viewers into docs/monorepo-updates-3 2019-09-05 20:55:17 -04:00
dannyrb
f3d0a4de3c docs(architecture): monorepo changes 2019-09-05 20:54:56 -04:00
Danny Brown
5a74321952
Merge branch 'master' into docs/monorepo-updates-3 2019-09-05 16:33:03 -04:00
dannyrb
27869a9cf6 docs(configuration): env variables, build commands, templates 2019-09-05 16:24:30 -04:00
dannyrb
8df6cc55cb fix: merge not imported 2019-09-05 09:49:39 -04:00
ohif-bot
9e74151b52 chore(release): publish [skip ci]
- @ohif/viewer@0.50.18
2019-09-05 13:09:35 +00:00
Danny Brown
192cc03842
Merge pull request #867 from dannyrb/docs/monorepo-updates-3
docs: monorepo updates
2019-09-05 09:01:09 -04:00
dannyrb
c791750f36 docs(data-source): new file locations, react-scripts to webpack, new env variables for proxy 2019-09-05 08:45:11 -04:00
dannyrb
080183c712 docs(installation): build commands, no more roll-up, webpack and PWAs 2019-09-05 07:11:35 -04:00
dannyrb
d1289540bd docs(getting-started): build commands, repo links, next steps 2019-09-04 22:22:55 -04:00
dannyrb
7c5b182130 docs(about): Deploy preview --> Live Demo 2019-09-04 22:08:52 -04:00
dannyrb
f38605f04c docs(readme): More approachable section title 2019-09-04 22:08:03 -04:00
dannyrb
3498037163 docs(readme): npm links and package descriptions 2019-09-04 21:54:29 -04:00
Danny Brown
e2196b1aaf
docs: filling in missing readme sections (#866) 2019-09-04 16:22:40 -04:00
ohif-bot
0d02ddd586 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@0.50.4
 - @ohif/viewer@0.50.17
2019-09-04 20:07:11 +00:00
Danny Brown
36c95fb897
ci: parallize terser (#864)
* ci: parallize terser

* Missing NODE_ENV set

* show progress for demo build
2019-09-04 15:58:51 -04:00
ohif-bot
e9f8941abd chore(release): publish [skip ci]
- @ohif/extension-cornerstone@0.50.3
 - @ohif/extension-dicom-html@0.50.3
 - @ohif/extension-dicom-microscopy@0.50.4
 - @ohif/extension-dicom-pdf@0.50.3
 - @ohif/extension-vtk@0.50.6
 - @ohif/core@0.50.5
 - @ohif/i18n@0.50.3
 - @ohif/ui@0.50.3
 - @ohif/viewer@0.50.16
2019-09-04 19:15:38 +00:00
Danny Brown
8e96d66859
ci: timeout and publish issues (#861)
* ci: test docs-publish

* Specify to use prod

* Babel should transpile with env set by webpack

* in-progress

* in-progress

* Polyfill for ie11 and edge features

* Ditch polyfills w/ babel - we'll use a service for now

* Bump tools version; shift vtk.js up a layer

* Specify we shouldn't target older than IE 11

* ditch babel plugins that should be covered by preset-env

* Add a top level build demo command

* Let our babel config determine settings

* Same babel fixes as PWA

* Rebuild deps that don't satisfy our target

* Mini helper script for excluding all node_modules, except...

* Shift vtk.js dep up a layer

* Kill core-js

* Export in a node happy way

* Updated yarn lock

* Set NODE_ENV when launching anything w/ WebPack

* docs: updated FAQ

* docs: on browser support

* Add support for redux browser extension

* misc. small clean-up

* docs: Remove roadmap page; add browser-support to sidebar

* Formatting

* Remove roadmap links

* Formatting

* ci: Remove config syntax error

* Simplified bug report template

* update community request template

* Update question's template

* simplify build scripts

* specify new script names

* fix: for measurement api being pruned by minimizer in prod builds

* Use named exports

* Simplify config

* Let's not do so much heavy lifting for a dev-server build

* fix dev build

* Add hotkeys to demo

* fix: jest babel config and env specific configs

* Remove call to non-existant command

* Shift experimental proposal plugin up a layer

* Use `https`

* Try with reduced number of package exceptions

* Try to resolve cypress issue

* Try to fix cypress issue in CI

* Skip https

* Set node_env before building with WebPack

* Watch command output

* ci: no output timeout increase
2019-09-04 15:00:45 -04:00
ohif-bot
3691297054 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@0.50.2
 - @ohif/extension-dicom-html@0.50.2
 - @ohif/extension-dicom-microscopy@0.50.3
 - @ohif/extension-dicom-pdf@0.50.2
 - @ohif/extension-vtk@0.50.5
 - @ohif/core@0.50.4
 - @ohif/i18n@0.50.2
 - @ohif/ui@0.50.2
 - @ohif/viewer@0.50.15
2019-09-04 18:07:38 +00:00
Danny Brown
49d343941e
fix: measurementsAPI issue caused by production build (#842)
* ci: test docs-publish

* Specify to use prod

* Babel should transpile with env set by webpack

* in-progress

* in-progress

* Polyfill for ie11 and edge features

* Ditch polyfills w/ babel - we'll use a service for now

* Bump tools version; shift vtk.js up a layer

* Specify we shouldn't target older than IE 11

* ditch babel plugins that should be covered by preset-env

* Add a top level build demo command

* Let our babel config determine settings

* Same babel fixes as PWA

* Rebuild deps that don't satisfy our target

* Mini helper script for excluding all node_modules, except...

* Shift vtk.js dep up a layer

* Kill core-js

* Export in a node happy way

* Updated yarn lock

* Set NODE_ENV when launching anything w/ WebPack

* docs: updated FAQ

* docs: on browser support

* Add support for redux browser extension

* misc. small clean-up

* docs: Remove roadmap page; add browser-support to sidebar

* Formatting

* Remove roadmap links

* Formatting

* ci: Remove config syntax error

* Simplified bug report template

* update community request template

* Update question's template

* simplify build scripts

* specify new script names

* fix: for measurement api being pruned by minimizer in prod builds

* Use named exports

* Simplify config

* Let's not do so much heavy lifting for a dev-server build

* fix dev build

* Add hotkeys to demo

* fix: jest babel config and env specific configs

* Remove call to non-existant command

* Shift experimental proposal plugin up a layer

* Use `https`

* Try with reduced number of package exceptions

* Try to resolve cypress issue

* Try to fix cypress issue in CI

* Skip https
2019-09-04 13:53:13 -04:00
Danny Brown
25e7232660
docs: Update ohif-viewer package links 2019-09-04 10:55:54 -04:00
ohif-bot
8c3b7c8573 chore(release): publish [skip ci]
- @ohif/extension-dicom-microscopy@0.50.2
 - @ohif/viewer@0.50.14
2019-09-03 12:18:48 +00:00
Erik Ziegler
dbaf5c5611
fix(dicom-microscopy): Update dicom-microscopy-viewer to 0.6.1 to fix Google Cloud usage with WSI images (#843) 2019-09-03 14:07:46 +02:00
ohif-bot
1b68c307fc chore(release): publish [skip ci]
- @ohif/viewer@0.50.13
2019-09-03 00:49:13 +00:00
Gustavo André Lelis
7a9b477609 fix: 🐛 Activating Pan and Zoom on right and middle click by def (#841) 2019-09-02 20:38:48 -04:00
ohif-bot
8f758186c1 chore(release): publish [skip ci]
- @ohif/viewer@0.50.12
2019-08-29 14:38:57 +00:00
Danny Brown
d48b617e1c
fix: asset resolution when at non-root route (#828)
* ci: test docs-publish

* Specify to use prod

* Babel should transpile with env set by webpack

* chore: production defaults to true; set in --env.production by cli

* Remove lingering merge issue

* Add minimification plugins

* Need relative URLs to find root assets

* Default public url to forward slash in define plugin

* Don't wrap w/ react-hot-loader if we're building for production

* No need to log extensions

* Minimize using terser; and minimize css

* Import redux from es; this bypasses commonjs as import and fixes our "production build" warning

* Split commone webpack build for now to test hotfix

* postfix slash

* undefined safe env access

* Try to fix node_env prod issue w/ redux

* Set NODE_ENV production for all prod builds

* Syntax error

* nix tests

* Increase max amount of available memory

* Don't run bundle analyzer by default

* fix: asset resolution when at non-root route
2019-08-29 10:29:38 -04:00
ohif-bot
7c2b444cf9 chore(release): publish [skip ci]
- @ohif/viewer@0.50.11
2019-08-29 13:03:45 +00:00
Danny Brown
d86f758125
ci: set NODE_ENV, fix out of memory issue, fix hot reload bundling
* ci: test docs-publish

* Specify to use prod

* Babel should transpile with env set by webpack

* chore: production defaults to true; set in --env.production by cli

* Remove lingering merge issue

* Add minimification plugins

* Need relative URLs to find root assets

* Default public url to forward slash in define plugin

* Don't wrap w/ react-hot-loader if we're building for production

* No need to log extensions

* Minimize using terser; and minimize css

* Import redux from es; this bypasses commonjs as import and fixes our "production build" warning

* Split commone webpack build for now to test hotfix

* postfix slash

* undefined safe env access

* Try to fix node_env prod issue w/ redux

* Set NODE_ENV production for all prod builds

* Syntax error

* nix tests

* Increase max amount of available memory

* Don't run bundle analyzer by default
2019-08-29 08:53:33 -04:00
ohif-bot
d26035fa55 chore(release): publish [skip ci]
- @ohif/viewer@0.50.10
2019-08-27 19:28:23 +00:00
Danny Brown
ec4e2ef1a6
ci: fix dev-server script (#811)
* ci: test docs-publish

* Require unit tests for dry run

* ci: Make sure our docs publish is executable

* Try to correct path issue

* Try repo prefix

* Try as yarn command

* Need a workspace to attach to from previous step

* Add before we call our bash script

* See if we can enforce commands being available -- or just install locally?

* Try again

* Try SSH

* Include username in gh https url

* Note regarding failure on PR branches

* Remove docs publish from PR workflow

* chore: ability to specify an alternative html-template at build time

* chore: add command to build demo PWA website output

* chore: remove unused CI code

* Testing GCP capabilities

* syntax

* Naming

* naming

* chore: WebPack output progress that we care about

* chore: Only publish the app config we care about

* PWA should publish source map

* Unused index.html file

* chore: Remove unused copy-webpack-plugin ignore

* Don't generate source map until we resolve memory issue

* ci: attempt to publish with GCP bucket deploy

* Update dev config to use new template loccations and env vars
2019-08-27 15:19:23 -04:00
Danny Brown
619d363243
ci: GCP deploy (#810)
* ci: test docs-publish

* Require unit tests for dry run

* ci: Make sure our docs publish is executable

* Try to correct path issue

* Try repo prefix

* Try as yarn command

* Need a workspace to attach to from previous step

* Add before we call our bash script

* See if we can enforce commands being available -- or just install locally?

* Try again

* Try SSH

* Include username in gh https url

* Note regarding failure on PR branches

* Remove docs publish from PR workflow

* chore: ability to specify an alternative html-template at build time

* chore: add command to build demo PWA website output

* chore: remove unused CI code

* Testing GCP capabilities

* syntax

* Naming

* naming

* chore: WebPack output progress that we care about

* chore: Only publish the app config we care about

* PWA should publish source map

* Unused index.html file

* chore: Remove unused copy-webpack-plugin ignore

* Don't generate source map until we resolve memory issue

* ci: attempt to publish with GCP bucket deploy
2019-08-27 14:43:44 -04:00
Danny Brown
073c0af7f7
GitHub labels appear to prefer short-hand syntax over literal emojis 2019-08-27 12:59:11 -04:00
Danny Brown
4aa49f4e26
Add awaiting review label to stale bot ignore 2019-08-27 10:59:58 -04:00
ohif-bot
a6dbe952d8 chore(release): publish [skip ci]
- @ohif/viewer@0.50.9
2019-08-27 03:03:03 +00:00
Danny Brown
196694f5a6
ci: test gcp demo site build (#805)
* ci: test docs-publish

* Require unit tests for dry run

* ci: Make sure our docs publish is executable

* Try to correct path issue

* Try repo prefix

* Try as yarn command

* Need a workspace to attach to from previous step

* Add before we call our bash script

* See if we can enforce commands being available -- or just install locally?

* Try again

* Try SSH

* Include username in gh https url

* Note regarding failure on PR branches

* Remove docs publish from PR workflow

* chore: ability to specify an alternative html-template at build time

* chore: add command to build demo PWA website output

* chore: remove unused CI code

* Testing GCP capabilities

* syntax

* Naming

* naming
2019-08-26 22:54:18 -04:00
Danny Brown
552df4c9a8
ci: test docs-publish (#803)
* ci: test docs-publish

* Require unit tests for dry run

* ci: Make sure our docs publish is executable

* Try to correct path issue

* Try repo prefix

* Try as yarn command

* Need a workspace to attach to from previous step

* Add before we call our bash script

* See if we can enforce commands being available -- or just install locally?

* Try again

* Try SSH

* Include username in gh https url

* Note regarding failure on PR branches

* Remove docs publish from PR workflow
2019-08-26 22:19:05 -04:00
Danny Brown
467712f8cd
chore: Add Stale Bot config (#802) 2019-08-26 14:47:18 -04:00
ohif-bot
681c160f08 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.50.4
 - @ohif/core@0.50.3
 - @ohif/viewer@0.50.8
2019-08-26 13:57:47 +00:00
Omar Toutounji
a88d865a9b fix(Studies): Qidosupportsincludefield should be true by default (#801)
* fix(Studies): qidoSupportsIncludeField should be true by default
* avoided creating new var
2019-08-26 09:46:25 -04:00
Danny Brown
d76fab0bc9
Merge pull request #792 from dannyrb/docs/testing-guidelines
docs: testing
2019-08-22 12:43:46 -04:00
ohif-bot
e74f8fb536 chore(release): publish [skip ci]
- @ohif/viewer@0.50.7
2019-08-22 15:28:03 +00:00
Danny Brown
ba20093b81
Merge pull request #794 from trustsitka/fix-ExpandableToolMenu-props
fix: 🐛 Update for changes in ExpandableToolMenu props
2019-08-22 11:17:05 -04:00
Danny Brown
ee68b7bcd3
Merge branch 'master' into fix-ExpandableToolMenu-props 2019-08-22 10:33:23 -04:00
ohif-bot
9138b554e3 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.50.3
 - @ohif/core@0.50.2
 - @ohif/viewer@0.50.6
2019-08-22 13:56:22 +00:00
Danny Brown
89079e9d37
Merge pull request #770 from OHIF/chore/core-cleanup
chore: Cleanup legacy code in core
2019-08-22 09:46:35 -04:00
David Wire
e09670ada2 fix: 🐛 Update for changes in ExpandableToolMenu props
The props for ExpandableToolMenu were changed from expecting `text` to
expecting `label` for the menu's label. These changes make sure we're
providing it that way.
2019-08-22 07:46:16 -06:00
Danny Brown
84cd2237c5
Merge branch 'master' into chore/core-cleanup 2019-08-22 09:32:07 -04:00
Danny Brown
0a2acdf2a0
Merge branch 'master' into docs/testing-guidelines 2019-08-21 23:28:58 -04:00
dannyrb
be6e53db0d Shift to bottom 2019-08-21 23:25:31 -04:00
dannyrb
aa48749959 Testing dorito 2019-08-21 23:24:03 -04:00
dannyrb
df6fbb416d docs: better pre-amble for testing doc 2019-08-21 23:06:30 -04:00
dannyrb
95cff27b95 docs: expanding on testing 2019-08-21 22:54:00 -04:00
dannyrb
4c322067a0 Kent quote 2019-08-21 22:26:02 -04:00
dannyrb
312e5826e6 e2e test guidance 2019-08-21 20:42:41 -04:00
dannyrb
4d219bdaca Small updates 2019-08-21 17:42:33 -04:00
dannyrb
f56bed2aa4 docs: in-progress 2019-08-21 16:20:47 -04:00
ohif-bot
496b0a8343 chore(release): publish [skip ci]
- @ohif/viewer@0.50.5
2019-08-21 14:32:47 +00:00
Ramesh R
d09fb4e71c fix(StandaloneRouting): Promise rejection - added return (#791) 2019-08-21 16:23:14 +02:00
dannyrb
2cf355856b docs: duplicate PR-784 2019-08-20 16:39:25 -04:00
ohif-bot
e7e2dcc4b6 chore(release): publish [skip ci]
- @ohif/viewer@0.50.4
2019-08-20 00:58:09 +00:00
Danny Brown
3f7d29dd76
Merge pull request #787 from omartoutounji/omartoutounji/react-app-config-updates
fix: 🐛 replaced REACT_APP_CONFIG with APP_CONFIG
2019-08-19 20:51:28 -04:00
Omar Toutounji
d46cccc652 replaced REACT_APP_CONFIG with APP_CONFIG 2019-08-19 20:30:44 -04:00
Danny Brown
d0c0690e0c
Merge branch 'master' into chore/core-cleanup 2019-08-16 14:04:12 -04:00
ohif-bot
38ea92d2a3 chore(release): publish [skip ci]
- @ohif/extension-vtk@0.50.2
 - @ohif/viewer@0.50.3
2019-08-15 11:02:24 +00:00
Erik Ziegler
98c40bc607 fix: Update vtk and viewport dependencies 2019-08-15 12:53:50 +02:00
Erik Ziegler
51472b2276 chore: Remove react-scripts from package.json 2019-08-15 12:26:43 +02:00
ohif-bot
63a9b3464d chore(release): publish [skip ci]
- @ohif/viewer@0.50.2
2019-08-15 08:04:33 +00:00
Erik Ziegler
20d8f0f5db chore: Add hot-reloading for the React app 2019-08-15 09:47:49 +02:00
ohif-bot
7982cf4fb4 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@0.50.1
 - @ohif/extension-dicom-html@0.50.1
 - @ohif/extension-dicom-microscopy@0.50.1
 - @ohif/extension-dicom-pdf@0.50.1
 - @ohif/extension-vtk@0.50.1
 - @ohif/core@0.50.1
 - @ohif/i18n@0.50.1
 - @ohif/ui@0.50.1
 - @ohif/viewer@0.50.1
2019-08-14 19:13:44 +00:00
Danny Brown
df6410b9d0
Merge pull request #773 from dannyrb/master-fresh
chore: clean up configs
2019-08-14 15:03:41 -04:00
dannyrb
a034bdd478 Updage engine config 2019-08-14 14:29:57 -04:00
dannyrb
cd4282129b Drop -alpha flags 2019-08-14 14:27:04 -04:00
ohif-bot
a54d023c7f chore(release): publish [skip ci]
- @ohif/viewer@0.50.0-alpha.13
2019-08-14 18:00:15 +00:00
Danny Brown
6d035c1679
Merge pull request #771 from OHIF/chore/hot-loading
chore: Add hot loading option to dev server
2019-08-14 13:51:39 -04:00
Erik Ziegler
1ff9beefcc chore: Add hot loading option to dev server 2019-08-14 18:10:01 +02:00
Erik Ziegler
be8ab62ab4 refactor: Cleanup legacy code in core 2019-08-14 17:48:29 +02:00
ohif-bot
52dcce875e chore(release): publish [skip ci]
- @ohif/i18n@0.50.0-alpha.11
 - @ohif/viewer@0.50.0-alpha.12
2019-08-14 15:04:19 +00:00
Erik Ziegler
da725a8923 fix: Update i18n locales to include Japanese 2019-08-14 16:54:40 +02:00
ohif-bot
4cae576a90 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@0.50.0-alpha.10
 - @ohif/extension-dicom-html@0.50.0-alpha.10
 - @ohif/extension-dicom-microscopy@0.50.0-alpha.10
 - @ohif/extension-dicom-pdf@0.50.0-alpha.10
 - @ohif/extension-vtk@0.50.0-alpha.10
 - @ohif/core@0.50.0-alpha.10
 - @ohif/i18n@0.50.0-alpha.10
 - @ohif/ui@0.50.0-alpha.10
 - @ohif/viewer@0.50.0-alpha.11
2019-08-14 14:20:19 +00:00
Danny Brown
b59c8c277a
Merge pull request #766 from dannyrb/monorepo
Monorepo
2019-08-14 10:08:58 -04:00
dannyrb
2c5ae43341 Small template changes 2019-08-14 09:40:53 -04:00
dannyrb
3ba0e8f919 Only run merge on master branch 2019-08-14 08:49:46 -04:00
dannyrb
58fa26b5ac Simplify lerna commands in CI 2019-08-14 08:49:19 -04:00
dannyrb
dabc948f4c bump versions to same starting point (still pre-v1) 2019-08-14 08:27:23 -04:00
ohif-bot
e7ff3a3ac8 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@0.0.39-alpha.9
 - @ohif/extension-dicom-html@0.0.4-alpha.9
 - @ohif/extension-dicom-microscopy@0.0.9-alpha.9
 - @ohif/extension-dicom-pdf@0.0.8-alpha.9
 - @ohif/extension-vtk@0.1.4-alpha.9
 - @ohif/core@0.11.1-alpha.9
 - @ohif/i18n@0.2.3-alpha.9
 - @ohif/ui@0.2.18-alpha.9
 - @ohif/viewer@0.0.22-alpha.10
2019-08-14 01:14:19 +00:00
dannyrb
764b7a1054 Merge branch 'monorepo' of github.com:OHIF/Viewers into monorepo 2019-08-13 21:06:12 -04:00
dannyrb
2f13453bea Manually authenticate with NPM 2019-08-13 21:06:07 -04:00
ohif-bot
26da6b0013 chore(release): publish [skip ci]
- @ohif/extension-cornerstone@0.0.39-alpha.8
 - @ohif/extension-dicom-html@0.0.4-alpha.8
 - @ohif/extension-dicom-microscopy@0.0.9-alpha.8
 - @ohif/extension-dicom-pdf@0.0.8-alpha.8
 - @ohif/extension-vtk@0.1.4-alpha.8
 - @ohif/core@0.11.1-alpha.8
 - @ohif/i18n@0.2.3-alpha.8
 - @ohif/ui@0.2.18-alpha.8
 - @ohif/viewer@0.0.22-alpha.9
2019-08-14 00:55:13 +00:00
Danny Brown
156b093965
Merge pull request #765 from dannyrb/monorepo
Remove unnecessary checkout
2019-08-13 20:34:30 -04:00
dannyrb
54dacbb91b Remove unnecessary checkout 2019-08-13 20:33:31 -04:00
dannyrb
6d18e7f1fe Tell GitHub who we are 2019-08-13 15:53:36 -04:00
Danny Brown
08ff214ea6
Chore/kill yalc with fire (#629)
* init

* more shifting

* Move @babel dependencies up to workspace root

* Begin updating dependent libraries to use sync'd webpack builds w/ watches

* Commit changes before a long weekend

* Split packages into platform and extensions

* Consolidate how/where we specify file/module type entrypoints

* Make it possible to pass in extensions as App props

* Resolve viewer's modules

* Target for UMD bundle

* Add Webpack Stylus loader

* Provide WebPack build options for microscopy, vtk, and ui

* Better entrypoint for extensions

* Push changes up to switch PCs

* Fix ESM symlink build for Viewers

* Shift docs to root

* Specify additional lerna config props

* Begin providing basic readme info

* Rename example extension folder

* Shift links to bottom of doc

* First attempt at a netlify deploy preview

* Attempt to fix deploy preview build

* push workspace enabled to initial command; remove second yarn install; use npx to call gitbook cli commands

* Try to use global gitbook-cli

* Export node_modules path

* More agressive with modifying PATH

* Follow deploy log output advice

* try again to set bin path

* Try swapping bash with a new shell

* Try bash -l instead of exec bash

* Annd let's try again

* and again

* We may have figured it out johnny, boy

* We need to pull cornerstone-wado-image-loader files from hoisted node_modules

* Attempt to fix ticks/escapes

* Change copy syntax; try running tests on viewers from root for circleci

* Lower version to match circleci image

* Try alternative jest-canvas-mock location and version file syntax

* Run version command instead of calling node directly

* Try alternative jest transform

* Set path and enable workspaces

* Add codecov flags

* Use cpx so our copying finishes?

* Get all platform unit tests to run

* Run and report individually and in parallel

* Try once relying on codecov yaml to split w/ flags

* Add projects to split by flags

* Generate separate reports

* Trigger codecov after everything has finished running; these may not support flags

* Use recommended flags from issue comments for codecov

* Fix typo

* Remove clear flag

* Shift back to calling codecov from root

* Generate example for codecov issue

* Try fixing paths

* Simplify

* Try using codecov orb

* Bump circleci version

* Upload core and viewer

* Use full string paths

* Remove individual codecov calls

* Fix dir

* Combine files before upload

* Escape anchors

* tryfix syntax

* Escape string literal

* Combine lines to reduce path

* long paths

* Use home alias

* Fix filename

* Try to see the contents of our cat'd file

* Also upload `core`

* Try running with aliased folder

* Fix path; split PR and Merge unit tests into separate jobs

* Set default threshold

* Fix typo

* Changing to scoped package names

* Adding note

* Catch more updates

* chore(release): publish %s [skip ci]

 - @ohif/extension-cornerstone@0.0.39-alpha.0
 - @ohif/extension-dicom-html@0.0.4-alpha.0
 - @ohif/extension-dicom-microscopy@0.0.9-alpha.0
 - @ohif/extension-dicom-pdf@0.0.8-alpha.0
 - @ohif/extension-vtk@0.1.4-alpha.0
 - @ohif/core@0.11.1-alpha.0
 - @ohif/i18n@0.2.3-alpha.0
 - @ohif/ui@0.2.18-alpha.0
 - @ohif/viewer@0.0.22-alpha.0

* Clean up primary readme

* Support for dev and dev:* commands

* Shift build command; satisfy default PWA build

* Remove old scripts

* Clean up UI to set webpack scripts

* Tidy up project links

* Clean duplicate code in UI project

* Update UI project's docs

* Clean up ui and i18n config

* Reduce duplicate code in `@ohif/core`

* Fix @ohif/ui versions

* bump @ohif/core versions

* Redux testkit dep

* Remove unused/duplicate config files for projects/packages

* ohif-core --> @ohif/core

* Safer publish command

* chore(release): publish %s [skip ci]

 - @ohif/extension-cornerstone@0.0.39-alpha.1
 - @ohif/extension-dicom-html@0.0.4-alpha.1
 - @ohif/extension-dicom-microscopy@0.0.9-alpha.1
 - @ohif/extension-dicom-pdf@0.0.8-alpha.1
 - @ohif/extension-vtk@0.1.4-alpha.1
 - @ohif/core@0.11.1-alpha.1
 - @ohif/i18n@0.2.3-alpha.1
 - @ohif/ui@0.2.18-alpha.1
 - @ohif/viewer@0.0.22-alpha.1

* test version bump

* Add global prettier config

* chore(release): publish %s [skip ci]

 - @ohif/viewer@0.0.22-alpha.2

* test lerna publish

* Update package.jsons

* Fix build scripts

* catch changes

* chore(release): publish %s [skip ci]

 - @ohif/extension-cornerstone@0.0.39-alpha.2
 - @ohif/extension-dicom-html@0.0.4-alpha.2
 - @ohif/extension-dicom-microscopy@0.0.9-alpha.2
 - @ohif/extension-dicom-pdf@0.0.8-alpha.2
 - @ohif/extension-vtk@0.1.4-alpha.2
 - @ohif/core@0.11.1-alpha.2
 - @ohif/i18n@0.2.3-alpha.2
 - @ohif/ui@0.2.18-alpha.2
 - @ohif/viewer@0.0.22-alpha.3

* fix eslint issues caused by eslint 6 and our react-app config

* Publish with canary tag

* chore(release): publish %s [skip ci]

 - @ohif/extension-cornerstone@0.0.39-alpha.3
 - @ohif/extension-dicom-html@0.0.4-alpha.3
 - @ohif/extension-dicom-microscopy@0.0.9-alpha.3
 - @ohif/extension-dicom-pdf@0.0.8-alpha.3
 - @ohif/extension-vtk@0.1.4-alpha.3
 - @ohif/core@0.11.1-alpha.3
 - @ohif/i18n@0.2.3-alpha.3
 - @ohif/ui@0.2.18-alpha.3
 - @ohif/viewer@0.0.22-alpha.4

* chore(release): publish %s [skip ci]

 - @ohif/extension-cornerstone@0.0.39-alpha.4
 - @ohif/extension-dicom-html@0.0.4-alpha.4
 - @ohif/extension-dicom-microscopy@0.0.9-alpha.4
 - @ohif/extension-dicom-pdf@0.0.8-alpha.4
 - @ohif/extension-vtk@0.1.4-alpha.4
 - @ohif/core@0.11.1-alpha.4
 - @ohif/i18n@0.2.3-alpha.4
 - @ohif/ui@0.2.18-alpha.4
 - @ohif/viewer@0.0.22-alpha.5

* Simplify build

* chore(release): publish %s [skip ci]

 - @ohif/extension-cornerstone@0.0.39-alpha.5
 - @ohif/extension-dicom-html@0.0.4-alpha.5
 - @ohif/extension-dicom-microscopy@0.0.9-alpha.5
 - @ohif/extension-dicom-pdf@0.0.8-alpha.5
 - @ohif/extension-vtk@0.1.4-alpha.5
 - @ohif/core@0.11.1-alpha.5
 - @ohif/i18n@0.2.3-alpha.5
 - @ohif/ui@0.2.18-alpha.5
 - @ohif/viewer@0.0.22-alpha.6

* chore(release): publish %s [skip ci]

 - @ohif/extension-cornerstone@0.0.39-alpha.6
 - @ohif/extension-dicom-html@0.0.4-alpha.6
 - @ohif/extension-dicom-microscopy@0.0.9-alpha.6
 - @ohif/extension-dicom-pdf@0.0.8-alpha.6
 - @ohif/extension-vtk@0.1.4-alpha.6
 - @ohif/core@0.11.1-alpha.6
 - @ohif/i18n@0.2.3-alpha.6
 - @ohif/ui@0.2.18-alpha.6
 - @ohif/viewer@0.0.22-alpha.7

* Split version and publish

* chore(release): publish %s [skip ci]

 - @ohif/extension-cornerstone@0.0.39-alpha.7
 - @ohif/extension-dicom-html@0.0.4-alpha.7
 - @ohif/extension-dicom-microscopy@0.0.9-alpha.7
 - @ohif/extension-dicom-pdf@0.0.8-alpha.7
 - @ohif/extension-vtk@0.1.4-alpha.7
 - @ohif/core@0.11.1-alpha.7
 - @ohif/i18n@0.2.3-alpha.7
 - @ohif/ui@0.2.18-alpha.7
 - @ohif/viewer@0.0.22-alpha.8

* Try simplify netlify build

* react-viewerbase --> @ohif/ui

* add test for stylus loader

* Try new way to specify publish path

* Use an output folder that won't be ignored

* Try move command

* fiddle with paths

* Dig for some information

* Make sure we're in root for our commands

* Remove discovery

* Setup script-tag example

* Fix typo

* Move config folder

* Update cornerstone extension to use shared/root webpack configs

* capture changes

* Update extension webpack configs

* Don't check in docz output

* Fix babel runtime resolution issue

* Simplify ui build steps

* Push in progress

* Shift directories

* Get viewer dev path to work

* Fix viewer commonjs build

* Fix build pwa config for viewers

* Make sure our package specific command can be called from root

* Update notes

* Fix imports and misc. merge notes

* Bump wado-image-loader version

* Switch up commands to remove webworkers copy

* Fix CI config

* Fix more broken package references

* Add react-dropzone

* Persist so e2e test can use

* Fix lockfile

* Use cypress orb to simplify CI

* Fix config

* Try again

* Install yarn latest for orb

* Install yarn a different way

* Wait on correct port

* Run tests in viewer project

* Fix cypress config

* Make Cypress happier - use default location

* Simplify e2e testing

* Capture UI changes since fork

* Catch core up

* Grab latest deps after merge

* Fix broken import

* Make sure cornerstone-wado-image-loader resolves to 3+

* Note regarding orbs

* Fix refresh on 404 routes

* Fix odd error for cornerstone-wado-image-loader

* Different target for UMD

* Simplify dev script

* Try to get fancy with netlify output

* Let's do it again

* Try to fix measurementTools issue

* See if we can get our lerna magic to work on merge to monorepo branch
2019-08-13 15:36:46 -04:00
João Felipe de Medeiros Moreira
cac911f08e fix(LabellingFlow): Measurement's table "re-label" overflows screen and other issues (#627)
* fix(LabellingFlow): Fixes search items

Includes a function to add the items related to root element

fix #508

* fix(LabellingManager): Fixes z-index problem with header menu

Fixes z-index problem with header menu

fix #508

* fix(LabellingFlow): Includes overlay for select tree when open

fix #508

* fix(LabellingManager): Changes backgroud color to highlight the modal text

fix #508

* fix(LabellingFlow): Adjusts relabel position in the page

fix #508

* fix(LabellingFlow): Fixes select tree position and include calculation to put at the center of mouse

fix #508

* fix(LabellingFlow): Fixes autofocus and refresh page after hitting enter

fix #508
2019-08-06 09:24:40 -04:00
Erik Ziegler
36952c401a fix(package.json) - Bump @ohif/i18n to 0.2.5 to add further Chinese translations 2019-07-31 12:45:02 +02:00
Erik Ziegler
b3781ac692 @ohif/i18n - Update Chinese translations (0.2.5) 2019-07-31 12:45:02 +02:00
Erik Ziegler
2174f4f2fd fix(package.json) - Bump @ohif/i18n to 0.2.4 to add Vietnamese and improve Chinese translations 2019-07-31 11:17:10 +02:00
Erik Ziegler
d033bd5995 @ohif/i18n - Add Vietnamese translation (Thanks @lam0620!) - Improve Chinese translations (Thanks @MarlonLiu1991!) (0.2.4) 2019-07-31 11:17:10 +02:00
David Wire
c455253c0e fix(ConnectedCornerstoneViewport): Fix definition of function map so it happens less frequently (#740)
`onMeasurementsChanged` currently defines a function map every time it is called. This function map includes a throttle on the `modified` function which is not being used because the function is called at most once per time it is instantiated. These changes elevate the map definition to the file level, since what it is defining does not change based on the other executed code.
2019-07-31 09:46:41 +03:00
Erik Ziegler
ec1946e379
ci(e2e): Fix cypress test memory issues by splitting build step out (#738) 2019-07-30 14:51:28 +02:00
Erik Ziegler
ad325fd83f ci(pull-requests): Run end-to-end tests on PRs 2019-07-30 11:33:21 +02:00
Erik Ziegler
a4112c46a5
fix(package.json): Bump WADO Image Loader dependency, remove unnecessary worker and codec paths (#727)
Note: had to disable sourcemaps for commonjs modules. This seems to be the only way to prevent memory issues on CircleCI.
2019-07-30 11:00:08 +02:00
David Wire
e73d009c21 fix(package.json): Resolve react/react-dom dependency conflict for embedded users (#734)
* fix(package.json): Resolve react/react-dom dependency conflict for embedded users

Some of the recent changes around the script-tag support for ohif/Viewers included moving react and
react-dom from peerDependencies to dependencies. This caused an error for embedded consumers of the
viewer because there could be multiple versions of react included. The error in the console points
to this link: https://reactjs.org/warnings/invalid-hook-call-warning.html. These changes are
necessary to resolve the issue for embedded users and don't seem to break the standalone version
either.

* fix(script-tag/index.html): Add `react` and `react-dom` as external scripts for cypress tests

The cyrpress tests won't pass unless we add the `react` and `react-dom` dependencies as external
scripts since they're no longer first order depdencies.
2019-07-30 08:30:23 +02:00
Erik Ziegler
f826341631 fix(package.json): Bump VTK extension to fix jitter issues in MPR view 2019-07-29 21:20:11 +02:00
Erik Ziegler
f8b52d0fee @ohif/extension-vtk: Update VTK to 9.0.1 2019-07-29 21:20:11 +02:00
Erik Ziegler
0e78836d55 fix(StandaloneRouter): Fix broken query string parsing in StandaloneRouter. Pass location object to
fix #731
2019-07-29 17:26:17 +02:00
Egor Lezhnin
40bf1a2efd feat(fuzzyMatching): fuzzymatching for query parameters if server config indicates support 2019-07-29 09:56:07 -04:00
Erik Ziegler
02c732aa15 fix(config): Stop crashes if window.config is not defined when script-tag viewer is loaded 2019-07-29 14:42:21 +02:00
Erik Ziegler
c5f532159b ci(cypress): Remove duplicate React versions in end-to-end tests 2019-07-29 10:45:38 +02:00
Erik Ziegler
b1df019c49 fix(package.json): Update @ohif/i18n to 0.2.3 2019-07-29 10:03:48 +02:00
Erik Ziegler
54b70e5fa4 @ohif/i18n: Update i18n locales from Locize source of truth (0.2.3) 2019-07-29 10:03:48 +02:00
Erik Ziegler
5802cf18eb
fix(script-tag): Include React and ReactDOM as dependencies and add installViewer function to simplify script tag usage. (#721) 2019-07-29 08:20:07 +02:00
Danny Brown
210c2e8d2c
fix: clear annotations toolbar button 2019-07-26 16:38:37 -04:00
Erik Ziegler
da318c9c8c
feat(DicomUploader): Make DICOM Uploader work with all DICOMWeb servers (#717)
* feat(DicomUploader): Make DICOM Uploader work with all DICOMWeb servers

* Bump viewerbase version
2019-07-26 15:04:28 +02:00
João Felipe de Medeiros Moreira
903c41d26f fix(Bootstrap): Remove bootstrap dependency (#708)
fix #636
2019-07-26 13:41:29 +02:00
Danny Brown
ba261a0d54
fix: support for next/previous image hotkeys via cornerstone extension update
* Bump @ohif/extenions-cornerstone react-cornerstone-viewport dep and cut release

* fix: bump @ohif/extension-cornerstone version to latest

* Catching the yarn lock changes

* Cut new release for cornerstone extension and update Viewers to use it

* Add new commands to netlify dmeo

* Flip directions for next/previous image
2019-07-23 15:39:56 -04:00
David Wire
3398a894a3 feat(commandsModule): Add previousImage and nextImage actions and commands (#710)
* feat(commandsModule): Add `previousImage` and `nextImage` actions and commands

This change adds the keybindings for previousImage (down) and nextImage (up) to the default
configuration and adds the command and action necessary to support it. This pull request is
dependent upon https://github.com/cornerstonejs/cornerstoneTools/pull/1025 which exports the scroll
utility it uses.

* style(default.js): Switch tabs to spaces

* fix(commandsModule): import `scroll` through cornerstoneTools.import
2019-07-23 14:52:29 -04:00
Danny Brown
5a13194203
fix(react-cornerstone-viewport): Viewport resizes on stack scroll (#709)
* Bump @ohif/extenions-cornerstone react-cornerstone-viewport dep and cut release

* fix: bump @ohif/extension-cornerstone version to latest

* Catching the yarn lock changes
2019-07-23 13:00:02 -04:00
Erik Ziegler
a2cc477a1a fix(package.json): Update @ohif/extension-microscopy to 0.0.12 2019-07-22 15:47:45 +02:00
Erik Ziegler
2e7a59f7f8 @ohif/extension-dicom-microscopy: Update dicom-microscopy-viewer dependency to 0.6.1 2019-07-22 15:47:45 +02:00
Erik Ziegler
83d7d59954
fix(package.json): Update ohif-core and dicomweb-client to fix Palette Color BulkData retrieval (#703) 2019-07-22 15:09:55 +02:00
Erik Ziegler
163fee8941
fix(Viewer): Set thumbnail to use altImageText for SEG images (#699) 2019-07-22 13:29:12 +02:00
Erik Ziegler
f547fdf832
fix(OpenIDConnect): Stop storing tokens in sessionStorage. Prefix OIDC routes automatically. Add logout button (#698) 2019-07-21 16:43:42 +02:00
Erik Ziegler
ac347849d0
fix(config/google.js): Add metadata endpoints and signingKeys to avoid CORS errors on Google's certificate endpoint (#696) 2019-07-21 10:46:11 +02:00
Erik Ziegler
54e0e32e22
fix(package.json): Bump ohif-core, extension-microscopy, and dicomweb-client (#697) 2019-07-21 10:04:07 +02:00
Erik Ziegler
690156d4b6
@ohif/extension-dicom-microscopy: Update dicom-microscopy-viewer dependency (#695) 2019-07-21 09:34:16 +02:00
Erik Ziegler
3b5fdb678a docs(googleCloud): Fix port in docs to correspond to defaults in config (Thanks @Stormert) 2019-07-21 09:13:23 +02:00
Erik Ziegler
e7604c4418 fix(Viewer): Switch to middle of stack for image thumbnail 2019-07-20 16:41:27 +02:00
Erik Ziegler
71f11a4856 fix(package.json): Update microscopy, pdf, and html extensions to fix thumbnail labels 2019-07-19 18:24:43 +02:00
Erik Ziegler
ae5d0587db @ohif/extension-dicom-pdf: Return modality from sopClassHandler (0.0.8) 2019-07-19 18:24:43 +02:00
Erik Ziegler
fbc06329e2 @ohif/extension-dicom-html: Return modality from sopClassHandler (0.0.4) 2019-07-19 18:24:43 +02:00
Erik Ziegler
86732c8186 @ohif/extension-dicom-microscopy: Return modality from sopClassHandler (0.0.10) 2019-07-19 18:24:43 +02:00
Erik Ziegler
a34d47c850
fix(package.json): Bump cornerstone-tools to 3.16.0 (#690) 2019-07-19 17:48:29 +02:00
Erik Ziegler
f758741950
fix(package.json): Update @ohif/extension-cornerstone to fix loading issue (#689) 2019-07-19 17:07:35 +02:00
Erik Ziegler
29a470103a
@ohif/extension-cornerstone: Bump react-cornerstone-viewport dependency (#688) 2019-07-19 16:50:07 +02:00
Erik Ziegler
104343aad5
fix(package.json): Bump @ohif/vtk-extension usage to fix performance issues, add Slab MIP (#686) 2019-07-18 13:52:06 +02:00
Erik Ziegler
d8b4a4d4c0
@ohif/extension-vtk: Add basic MIP and Slab Thickness controls. UI to be updated later (#685) 2019-07-18 13:39:00 +02:00
Erik Ziegler
2fd60f3109
docs(google-cloud): Fix OAuth Callback URL (#683) 2019-07-18 11:18:56 +02:00
Erik Ziegler
08ce30e69c
@ohif/extension-vtk: Update VTK extension (#679) 2019-07-18 07:54:53 +02:00
allcontributors[bot]
546f6bfe68 docs: add pavertomato as a contributor (#678)
* docs: update README.md

* docs: update .all-contributorsrc
2019-07-17 11:26:24 -04:00
Egor Lezhnin
8e1f15e031 fix(config): Fix hardcoded default Google Cloud OAuth redirect_uri (#585) (#675) 2019-07-17 17:04:15 +02:00
David Wire
0d5d804741 fix(availableTools): Add the Eraser to the available tools (#666)
* add the Eraser to the available tools

* review response - remove unnecessary config from eraser tool

* remove cargo culted mouseButtonMasks
2019-07-17 09:58:33 -04:00
David Wire
ca735fa070 fix(availableTools): add ArrowAnnotate as an available tool (#667)
* add ArrowAnnotate as an available tool

* review response - remove the cargo culted mouseButtonMasks
2019-07-17 09:45:29 -04:00
David Wire
3d425f54cc fix(ToolbarRow): Update ToolbarRow so that an activeButton in a submenu is passed in as an activeCom (#668) 2019-07-17 10:13:59 +02:00
Romulo Bordezani
7bc9b45853 feat(svfCursorsSupport): enable CornerstoneTools SVG Icons on OHIF Viewer (#659) (#672)
- Fixes the issue 659.
2019-07-16 22:41:41 -04:00
João Felipe de Medeiros Moreira
5bd3af0cca fix(Viewer): Removes fixed modality and get the one returned from ohif-core (#664)
* fix(Viewer): Removes fixed modality insert and starting using the information returned from ohif-cor

* fix(Viewer): Includes condition when display set does not have modality information to use UN for un
2019-07-15 10:09:58 -04:00
Erik Ziegler
d4aee36542
fix(GoogleCloud): Fix Cloud Healthcare file upload buttons (#658)
fix #654
2019-07-11 23:32:49 +02:00
dependabot[bot]
2a281da19f chore(deps): bump lodash.merge in /extensions/ohif-i18n (#647)
Bumps [lodash.merge](https://github.com/lodash/lodash) from 4.6.1 to 4.6.2.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2019-07-11 09:54:49 -07:00
dependabot[bot]
4631218dcb chore(deps): bump lodash.merge in /extensions/ohif-vtk-extension (#646)
Bumps [lodash.merge](https://github.com/lodash/lodash) from 4.6.1 to 4.6.2.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2019-07-11 09:45:47 -07:00
Erik Ziegler
8b3e5dffb1
fix(filesToStudies): Improve error handling for local file viewing (#652) 2019-07-11 14:34:29 +02:00
Erik Ziegler
ef6819cf40
fix(docker-google-cloud): Update docker build process to allow Google Cloud CLIENT_ID to be passed in at runtime, update docs. (#651) 2019-07-11 14:08:00 +02:00
Erik Ziegler
2f104b5e91
feat(ViewerLocalFileData): Add drag/drop to load DICOM files in the Viewer at /local (#644) 2019-07-11 13:49:29 +02:00
Erik Ziegler
f256ac5a7d
fix(package.json): Fix issues with babel-core causes undefined _objectSpread2 (#650) 2019-07-11 12:59:33 +02:00
Erik Ziegler
3a4ee9e346
fix(DicomUploadService): Remove require usage (#649) 2019-07-11 12:18:25 +02:00
Biharck Araujo
1a9cfea365 fix(ToolbarRow): Add i18n string for Series switcher (#634) 2019-07-11 11:32:09 +02:00
Erik Ziegler
9055f19fb5
ci(Add e2e test for script tag usage to CI): (#648) 2019-07-11 11:06:32 +02:00
Erik Ziegler
bcbc5e4bbf
fix(yarn.lock): Blow away lockfile because it seems to be broken for some users (#643) 2019-07-11 10:18:21 +02:00
dependabot[bot]
408ba36f4f chore(deps): bump lodash.merge from 4.6.1 to 4.6.2 in /docs/latest (#645)
Bumps [lodash.merge](https://github.com/lodash/lodash) from 4.6.1 to 4.6.2.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2019-07-11 09:01:59 +02:00
Erik Ziegler
091cab49e0
refactor(GoogleCloud): Clean up some of the Healthcare API Adapter components (#641) 2019-07-10 14:54:27 +02:00
Egor Lezhnin
4a09f33446 feat(GoogleCloud): Initial commits to include the Healthcare API Adapter (#584)
* This is a React port of https://github.com/quantumsoftgroup/healthcare-api-adapter - It still needs some UI cleanup.
2019-07-10 09:26:19 +02:00
Erik Ziegler
4095629310
fix(package.json): Bump @ohif/extension-cornerstone to 0.0.40 (#638) 2019-07-09 18:38:31 +02:00
Erik Ziegler
91d2d31846
@ohif/extension-cornerstone: Prevent errors when display set is empty object (0.0.40) (#637) 2019-07-09 18:17:13 +02:00
João Felipe de Medeiros Moreira
ff2c1cb2f1 test(E2E): End-to-end tests for script tag (#633)
fix #621
2019-07-09 18:08:18 +02:00
Gustavo André Lelis
727c0d8ba6 fix(labelling): Update naming of configuration to props as cornerstoneTools has also changed (#484) 2019-07-08 21:38:03 +02:00
João Felipe de Medeiros Moreira
4b3994e788 feat(StudyList): Disable study list link/route using 'showStudyList' config property (#597)
fix #574
2019-07-08 21:29:59 +02:00
Erik Ziegler
571dd5848f
fix(ViewerRouting): Fix routing failures for /study/x/series/y (#617)
re #614
2019-07-08 18:27:08 +02:00
David Wire
2d48d0aa37 feat(StudyList): Add QIDO style query parameters to set initial filters (#543)
This pull request adds the ability to use query parameters to pass filters into the StudyList from
the url. These parameters are of the same form used by the QIDO requests to apply the filters. This
solution seemed to me to be the most obvious way to manage them. There's one open question however,
around what to do with the parameters after the initial load. For now, the URL parameters are
overridden the moment the user tries to add another filter. Depending on review feedback it seems
like it may make more sense for those query parameter filters to be "permanent" and so any further
filtering would augment those parameters rather than replace them.
2019-07-08 18:15:06 +02:00
Erik Ziegler
562d63fa74 fix(package.json): Update @ohif/extension-dicom-microscopy to fix resizing behaviour
fix #550
2019-07-08 14:31:23 +02:00
biharck
1a6246f99b @ohif/extension-dicom-microscopy: Add resize call when the container has resized (0.0.9) 2019-07-08 14:31:23 +02:00
Erik Ziegler
ce1a62a961 chore(gitattributes): Fix gitattributes handling of .fig files 2019-07-08 13:49:56 +02:00
Evren Ozkan
dd6acb2d03 feat(extension-cornerstone): Add additional tools: Magnify, ROI Window, Probe, Ellipse, Rectangle, Invert, Rotate Right, Flip H, Flip V, Clear 2019-07-08 13:49:56 +02:00
Danny Brown
5ac9048ef0
feat: extension panels
* Snapshot -- Switching branches
* fix classes and hooks for panel componet
* Restore button functionality
* feat: support for expandableToolMenu
* Shift cornerstoneTools config up a layer, and use globalToolSync
* Remaining initCornerstoneTools changes
* Pull in Segmentation Plugin
* Shift MeasurementsPanel to an extension
* Note regarding where data is coming from
* Make sure measurement callback is available
* Bump core version
* Shift MeasurementsTable to a local extensions directory
* Register appCommands as an extension
* Update package dependencies and yarn lock
* Support for panel width
* Ability to pass props to our panel component
* Add a safety check around calling our tacked on method for tool options
* Left sidebar plugins + fix activeIndex prop passed to sidebar.
* fix: viewer height
Now in a shared container w/ top bar, so we need to factor that in when calculating height
* lock file latest
* Update thumbnails if studies has changes
* bump cornerstone version to resolve globalToolSynch history issue
* Default panel to open; studies optional
* Bump minor version for ohif-cornestone-extension
* Simplify button logic
* Accommodate odd roundedButtonGroup value change emit
* Map viewers + selectedViewport instead of pulling off the window
2019-07-04 14:09:13 -04:00
Danny Brown
514609708d
chore: set codecov commit status threshold (#623)
* chore: set codecov commit status threshold

* Test new code doesn't fail threshold

* Turn off patch status

* Undo test threshold code
2019-07-02 22:18:50 -04:00
Erik Ziegler
c30b88d48a
docs(translating.md): Add Locize logo for their open source sponsorship (#612) 2019-07-01 12:10:56 +02:00
João Felipe de Medeiros Moreira
4f1505de3c docs(README) Changes README related to cypress to use the new commands (#610) 2019-07-01 12:01:18 +02:00
Erik Ziegler
57d2ae23ae ci(package.json): Change settings for viewer.ohif.org to use Locize CDN 2019-06-30 23:40:03 +02:00
Erik Ziegler
fd6ec04514 feat(package.json): Update i18n approach to optionally use Locize CDN depending on config. Bump @ohif/extension-vtk @ohif/i18n 2019-06-30 23:10:43 +02:00
Erik Ziegler
6a98550c43 @ohif/extension-vtk 0.1.3: Wait for i18n to be initialized before adding resources 2019-06-30 23:10:43 +02:00
Erik Ziegler
e2ec11c83e @ohif-i18n 0.2.2: Expose the promise tracking i18next initialization 2019-06-30 23:10:43 +02:00
Erik Ziegler
d2c773196f @ohif-i18n 0.2.1: Prevent crashing when window.config is undefined 2019-06-30 15:41:34 +02:00
Erik Ziegler
1b7625affd @ohif/i18n - Setup optional link to Locize translation, and script to pull and store translations 2019-06-30 14:37:07 +02:00
Erik Ziegler
8a4306d1b0 fix(package.json): Bump vtk extension and react-viewerbase 2019-06-29 11:35:20 +02:00
Erik Ziegler
3cb8f804ad @ohif/extension-vtk: Update to 0.1.2 after bumping react-viewerbase version 2019-06-29 11:35:20 +02:00
Rodrigo Antinarelli
16cea8681e @ohif/i18n: Fix issues with exports and update docs (#598)
* update i18n version -- already published

* update ohif/i18n version and add modules

* update ohif/i18n version

* update translating documentation

* replace addLocales method and exported modules

* lock files

* Update index.js

* fix(@ohif/i18n): export custom methods in the main i18n object

`initI18n`, `addLocales` and `T` are now being exported inside the main `i18n` object.

* remove unecessary dependencies

* update vtk-extension lock file
2019-06-29 09:33:38 +02:00
Erik Ziegler
cb565427b3 fix(package.json): Bump ohif-core to fix broken multiframe usage with WADO-RS
fix #539
2019-06-28 17:56:13 +02:00
João Felipe de Medeiros Moreira
3a4715759f fix(polyfills): Adds core-js/stable and regenerator-runtime (#590) 2019-06-28 16:20:16 +02:00
biharck
edb0db349b feat(OHIFStandaloneViewer.js): adding NProgress loading bar on top of the page 2019-06-27 15:28:37 +02:00
Erik Ziegler
5a3f3e3eff fix(package.json): Update react-viewerbase and extension-vtk to ensure old @ohif/i18n is not used 2019-06-27 15:12:42 +02:00
Erik Ziegler
5efa93ba61 @ohif/extension-vtk: Update dependencies which were pulling in old @ohif/i18n 2019-06-27 15:12:42 +02:00
Erik Ziegler
722d68c85a fix(package.json): Update vtk-extension to fix i18n issues 2019-06-27 14:09:20 +02:00
Erik Ziegler
d14f3eafdd @ohif/extension-vtk: Republish 0.0.9 to avoid inadvertently broken 0.0.8 2019-06-27 14:09:20 +02:00
Rodrigo Antinarelli
d04bb323f7 @ohif-i18n - Replace use of context to import locales (#575) 2019-06-27 12:01:11 +02:00
biharck
6548dffb42 feat(Header.js): Add About modal to header 2019-06-27 10:59:23 +02:00
Erik Ziegler
81cb9d3a75 ci(rollbar): Add Rollbar script during CI deploy 2019-06-27 09:41:21 +02:00
Erik Ziegler
5807a948b6 docs(netlify): Add Netlify badge to top of docs page 2019-06-26 11:49:46 +02:00
Erik Ziegler
2bdcb7c5f7 fix(extension-dicom-microscopy): Update to 0.0.8 to use retrieveRendered by default 2019-06-24 13:32:11 +02:00
Erik Ziegler
c148cd9b85 @ohif/extension-dicom-microscopy: Use retrieveRendered for frame retrieval 2019-06-24 12:39:55 +02:00
allcontributors[bot]
51f40d49e5 docs: add swederik as a contributor (#582)
* docs: update README.md

* docs: update .all-contributorsrc
2019-06-22 10:47:55 -04:00
allcontributors[bot]
ab3768bc18 docs: add dannyrb as a contributor (#581)
* docs: update README.md

* docs: update .all-contributorsrc
2019-06-22 10:47:16 -04:00
allcontributors[bot]
02cad4c851 docs: add jfmedeiros1820 as a contributor (#580)
* docs: update README.md

* docs: update .all-contributorsrc
2019-06-22 10:46:10 -04:00
João Felipe de Medeiros Moreira
612832069d ci: add e2e tests with cypress
* Creates E2E tests using Cypress and includes two tests

* Improves yarn.lock file

* Includes documentation

* Cypress project id

* test e2e w/ ci and video

* run unit command before e2e

* Also cache cypress

* Persist cypress to next build step

* Try a different path

* Try without working dir

* Persist less data, but restore yarn/cypress cache in next step

* Install cypress to invalidate cache

* Add e2e as a blocker for merged publishing
2019-06-22 10:02:07 -04:00
Danny Brown
30bcc07dda
Merge pull request #578 from OHIF/all-contributors/add-dlwire
docs: add dlwire as a contributor
2019-06-21 11:56:15 -04:00
allcontributors[bot]
7ef16dad9d docs: update .all-contributorsrc 2019-06-21 15:55:50 +00:00
allcontributors[bot]
a97cb087eb docs: update README.md 2019-06-21 15:55:49 +00:00
David Wire
9116d08959 fix(IHEInvokeImageDisplay): Fix the props to access query parameters per API spec
I encountered this bug trying to use the IHEInvokeImageDisplay API in order to render multiple DICOM
studies in the viewer. Unfortunately, the component was no longer working and required some changes
in order to access the query parameters used in the API. These changes update the component to use
react router to access the query parameters and pass them to ConnectedViewerRetrieveStudyData as
appropriate. The move from ViewerRetrieveStudyData to ConnectedViewerRetrieveStudyData was necessary
in order to access the active server from the redux store. I also made a change from a series of if
clauses to a switch statement as it seemed a little more appropriate given the nature of the code
paths. Happy to change that back if needed. The PATIENT and default paths were not fixed as a part
of this work because we'll need a way to pass the filter in to the StudyList component.
2019-06-21 17:52:46 +02:00
Danny Brown
1d5c1cb83f
feat: extension system overhaul 2019-06-21 09:15:47 -04:00
Danny Brown
f7ba7621ef
Merge pull request #549 from dannyrb/feature/extensions-panels-and-docs
Feature/extensions panels and docs
2019-06-21 09:13:42 -04:00
Danny Brown
51d1679dfb
Merge branch 'master' into feature/extensions-panels-and-docs 2019-06-21 00:00:33 -04:00
dannyrb
6288ff9c8f Fix broken test 2019-06-20 23:58:32 -04:00
dannyrb
bc4a650283 Breaks UMD build 2019-06-20 23:55:02 -04:00
dannyrb
f4e4cfdf39 lock file 2019-06-20 23:50:06 -04:00
dannyrb
23de20d7d3 Bump extension and ohif-core versions 2019-06-20 23:30:52 -04:00
dannyrb
13aedecd55 Bump two more package versions 2019-06-20 23:30:16 -04:00
dannyrb
566cb218e6 Bump deps 2019-06-20 23:23:54 -04:00
dannyrb
7d2e65c73a Stubbed readme 2019-06-20 23:23:10 -04:00
dannyrb
3cb5abf0c9 Prettier config and formatting 2019-06-20 23:22:52 -04:00
dannyrb
ec9ea8b761 formatting 2019-06-20 23:17:07 -04:00
dannyrb
aa250a9210 bump package version 2019-06-20 23:12:55 -04:00
dannyrb
235f56c071 bump ohif-core minimum version number 2019-06-20 23:10:58 -04:00
dannyrb
ff602bf500 simple vtk extension readme 2019-06-20 23:10:17 -04:00
dannyrb
5785ab9f1f bump version 2019-06-20 23:01:39 -04:00
dannyrb
273e262420 Add badge 2019-06-20 23:01:03 -04:00
dannyrb
c2b048795d bump minimum required ohif-core version number 2019-06-20 22:57:57 -04:00
dannyrb
75288d986d update readme 2019-06-20 22:57:38 -04:00
dannyrb
a5b0e15369 Formatting 2019-06-20 22:57:14 -04:00
dannyrb
2326aa8ba1 Some sane prettier defaults 2019-06-20 22:56:26 -04:00
dannyrb
3a684e5963 rename 2019-06-20 22:50:56 -04:00
dannyrb
56bf65d95f name bump 2019-06-20 22:50:23 -04:00
dannyrb
c193ba17e7 fix for broken CINE player 2019-06-20 20:30:12 -04:00
Danny Brown
a9659a0f24
Merge pull request #572 from OHIF/all-contributors/add-diego0020
docs: add diego0020 as a contributor
2019-06-18 23:35:32 -04:00
allcontributors[bot]
baa28bdf41 docs: update .all-contributorsrc 2019-06-19 03:35:18 +00:00
allcontributors[bot]
d9dd127539 docs: update README.md 2019-06-19 03:35:17 +00:00
Danny Brown
b3873f7673
Merge pull request #520 from diego0020/dev-react-proxy
WIP: Use react proxy instead of nginx with cors headers for local dev
2019-06-18 23:33:37 -04:00
dannyrb
03501eddb0 fix typo 2019-06-18 23:33:02 -04:00
dannyrb
2f4961c078 Note regarding docker toolbox and react-proxy 2019-06-18 23:26:27 -04:00
dannyrb
4f3f19de7c Beginnings of commandsModule docs 2019-06-18 21:09:08 -04:00
Danny Brown
39d844f106
Merge branch 'master' into dev-react-proxy 2019-06-18 21:05:13 -04:00
dannyrb
3859359a05 Note regarding how extensions are specified for app 2019-06-18 16:11:38 -04:00
dannyrb
9af3ad414a Clean up code snippet config 2019-06-18 15:29:43 -04:00
dannyrb
8112c569e8 Expanding extensions docs 2019-06-18 15:19:04 -04:00
dannyrb
32b420087b Don't set vtk on viewport's layout; rely on viewportSpecificData 2019-06-18 14:51:51 -04:00
dannyrb
aa811dffe3 Use dicom-html extension 2019-06-18 14:49:45 -04:00
dannyrb
0bfd49d1eb Remove window. references 2019-06-18 14:33:39 -04:00
dannyrb
f26dfe4801 Causes things to blow up when sopClassHandler should be used instead of cornerstone 2019-06-18 14:33:02 -04:00
dannyrb
b542ce4437 port html extension 2019-06-17 16:23:31 -04:00
dannyrb
d1f7431af6 Re-add dicom microspy extension 2019-06-17 15:42:11 -04:00
dannyrb
a1bbc4e87a Pull in PDF extension 2019-06-17 15:05:51 -04:00
dannyrb
b154c2612d Use new extension interface 2019-06-17 15:05:27 -04:00
dannyrb
01ea3f4179 scoped package 2019-06-17 15:05:10 -04:00
dannyrb
4d540170aa Use activeContexts getter/selector in commandsManager 2019-06-17 14:48:33 -04:00
dannyrb
8b636b53be Make sure plugin is set for cornerstone viewports before a layout change is triggered 2019-06-17 14:45:53 -04:00
dannyrb
6050721d33 Use reselect to compute our activeContexts 2019-06-17 14:20:32 -04:00
dannyrb
88568b1ddd extensions specify default toolbar button context 2019-06-17 14:03:04 -04:00
dannyrb
80047ff518 Thunk and logger for redux 2019-06-17 10:40:01 -04:00
dannyrb
a75bae90aa Merge branch 'master' of github.com:OHIF/Viewers into feature/extensions-panels-and-docs
# Conflicts:
#	extensions/ohif-vtk-extension/package.json
#	extensions/ohif-vtk-extension/src/commandsModule.js
#	extensions/ohif-vtk-extension/yarn.lock
2019-06-17 09:02:24 -04:00
Erik Ziegler
f47ce6e629 feat(@ohif/extension-vtk): Add visible crosshair lines to MPR mode
re #562
2019-06-17 14:48:11 +02:00
Erik Ziegler
9f67ecab55 @ohif/extension-vtk: Enable crosshairs display on viewports (0.0.6) 2019-06-17 14:30:50 +02:00
dannyrb
1367f96dcd Remove code that depends on global "buttons" in Vtk Viewport 2019-06-16 23:44:01 -04:00
dannyrb
ba92111484 No need to pull commandsManager off the window 2019-06-16 23:43:30 -04:00
dannyrb
e6c9152cd1 Technically available in _any_ context, not just VTK 2019-06-16 23:36:10 -04:00
dannyrb
46904ea39f Context specific commands 2019-06-16 23:31:17 -04:00
dannyrb
cf65e3a690 lowercase toolbarModule 2019-06-16 23:12:20 -04:00
dannyrb
723c9c9c2e force rename toolbarModule 2019-06-16 23:12:03 -04:00
dannyrb
d5b4cb7b07 Refactor vtk extension; re-add to app 2019-06-16 23:11:43 -04:00
dannyrb
f90578f567 Add vtk dependencies 2019-06-16 23:10:39 -04:00
dannyrb
1af09f1fad Merge branch 'master' of github.com:OHIF/Viewers into feature/extensions-panels-and-docs
# Conflicts:
#	extensions/ohif-vtk-extension/src/ConnectedToolbarSection.js
#	src/App.js
2019-06-16 22:26:44 -04:00
dannyrb
7ed90a280f Escape hatch note 2019-06-16 22:15:44 -04:00
dannyrb
fc6f7446d0 Remove dead code: ConnectedToolbarSection and setToolActive 2019-06-16 14:23:03 -04:00
dannyrb
3ed602a40a Append Module to sopClassHandler method 2019-06-16 14:17:22 -04:00
dannyrb
9b7d77e2d6 Example SOP Class Handler 2019-06-16 14:16:36 -04:00
dannyrb
0cea2a8bff Simplify basic viewport extensions 2019-06-16 14:15:34 -04:00
dannyrb
ffae67dc99 Remove dead comments from commandsModule 2019-06-16 14:08:38 -04:00
dannyrb
6e4dba7a10 Fix active button 👍 2019-06-16 14:07:13 -04:00
dannyrb
94177eee24 Prefer direct ToolbarButtons usage over ToolbarSection 2019-06-16 13:58:25 -04:00
dannyrb
9d50d97d6f Remove unused getDefaultToolbarButtons now that they're pushed to extension 2019-06-16 13:57:11 -04:00
dannyrb
7971ac58a2 Generic setToolActive command 2019-06-16 13:56:49 -04:00
dannyrb
4de5fa2d0e Simplify toolbar module to be config only for now; use new modules in extension 2019-06-16 13:56:24 -04:00
Erik Ziegler
bd0c7b75e7 feat(@ohif/extension-vtk): Add oblique rotate button to MPR mode
re #563
2019-06-15 16:03:12 +02:00
Erik Ziegler
357187ddee @ohif/extension-vtk: Enable rotate button (0.0.5) 2019-06-15 16:03:12 +02:00
Erik Ziegler
24a8d7bca2
feat(@ohif/extension-vtk): Update app to include basic MPR with VTK (#557) 2019-06-15 14:26:09 +02:00
Erik Ziegler
d0d757d468
Merge pull request #556 from OHIF/vtk-extension-changes
refactor(@ohif/extension-vtk): Update VTK extension to add basic MPR …
2019-06-15 13:44:59 +02:00
Erik Ziegler
1bf199786c
Merge branch 'master' into vtk-extension-changes 2019-06-15 13:41:41 +02:00
Erik Ziegler
5a0d37ff64
Merge pull request #555 from OHIF/cornerstone-extension-update
refactor(@ohif/extension-cornerstone): Error handling and removal of …
2019-06-15 13:40:23 +02:00
Erik Ziegler
9573f67132 refactor(@ohif/extension-vtk): Update VTK extension to add basic MPR functionality 2019-06-15 11:51:56 +02:00
Erik Ziegler
537057e4d6 refactor(@ohif/extension-cornerstone): Error handling and removal of viewportData clearing on compon 2019-06-15 11:47:07 +02:00
dannyrb
43a493283a Merge branch 'feature/extensions-panels-and-docs' of github.com:dannyrb/Viewers into feature/extensions-panels-and-docs 2019-06-14 20:45:36 -04:00
Danny Brown
df2a984cd3
Merge branch 'master' into feature/extensions-panels-and-docs 2019-06-14 20:45:00 -04:00
dannyrb
902dc5e31d Correctly find toolbar extensions 2019-06-14 20:44:15 -04:00
dannyrb
29853429c7 createStacks --> studyMetadata.createDisplaySets(sopClassHandlerModules) 2019-06-14 20:28:41 -04:00
Erik Ziegler
04e00fad20
feat(i18n): Add ability to internationalize the application and its extensions (#526)
* i18n basic setup

* i18n - extension extraction

* Creating spanish translation

* i18n - extension extraction

* i18n - Multiple languages overrides

* i18n - Multiple languages overrides

* remove yalc react-viewerbase

* use t prop from withTranslation

* fix typo

* Exports provider and HOC to be used by any application without install I18Next libraries

* i18n - Documentation

* i18n - Adding Provider to non Admins

* i18n - Documentation for i18n

* i18n - Documentation for i18n

* Configures hif-vtk-extention to use ohif-i18n for translation and include load more locations

* update i18n documentation

* add language detector lib

* fix text

* WIP - using yalc for react-viewerbase

* remove unused switch language buttons

* Update yarn.lock

* Merge branch 'master' of https://github.com/OHIF/Viewers into feature/i18n-basics

# Conflicts:
#	extensions/ohif-vtk-extension/package.json
#	extensions/ohif-vtk-extension/rollup.config.js
#	extensions/ohif-vtk-extension/yarn.lock
#	package.json
#	src/App.js
#	src/components/Header/Header.js
#	yarn.lock

* Adding language detector as Peer Dependency, its not working inside the rollup bundle.

* Upgrading i18next version.

* Language Detection implementation, bug fixes related to i18n and debugger helper added.

* Updating i18next documentation.

* i18n implementation - Adding final packages

* small fix

* i18n implementation - Fixing up vtk-extension's  packages

* i18n implementation - Fixing up translations

* i18n implementation - Updating yarn.lock

* fix require.context bug

* udpate ohif/i18n version

* i18n implementation - Updating yarn.lock

* i18n implementation - Removing bad image from docs

* i18n implementation - Removing ROI from translations

* i18n implementation - Fixing CineDialog translations

* update i18n package

* fix conditional

* update i18n

* fix conditional

* update @ohif/i18n
2019-06-14 15:56:20 +02:00
Erik Ziegler
db814f6248
Merge branch 'master' into feature/i18n-basics 2019-06-14 15:52:39 +02:00
Rodrigo Antinarelli
56e3982111 update @ohif/i18n 2019-06-13 16:20:36 -03:00
Rodrigo Antinarelli
cb2871d377 fix conditional 2019-06-13 16:20:29 -03:00
Rodrigo Antinarelli
1cbbbd6989 update i18n 2019-06-13 15:31:33 -03:00
Rodrigo Antinarelli
ea3142c1ea fix conditional 2019-06-13 15:30:13 -03:00
Rodrigo Antinarelli
e90041ccd6 update i18n package 2019-06-13 15:30:05 -03:00
romulo bordezani
515768aff2 i18n implementation - Fixing CineDialog translations 2019-06-13 15:02:06 -03:00
romulo bordezani
f448a7cdcc i18n implementation - Removing ROI from translations 2019-06-13 14:59:41 -03:00
romulo bordezani
3fa9bc54f8 i18n implementation - Removing bad image from docs 2019-06-13 14:59:16 -03:00
romulo bordezani
414ebd5d8b i18n implementation - Updating yarn.lock 2019-06-13 14:31:04 -03:00
romulo bordezani
59489ae3c6 Merge branch 'feature/i18n-basics' of github.com:romulobordezani/Viewers into feature/i18n-basics 2019-06-13 14:25:19 -03:00
Rodrigo Antinarelli
9321c31235 udpate ohif/i18n version 2019-06-13 14:22:23 -03:00
Rodrigo Antinarelli
66fc1dd739 fix require.context bug 2019-06-13 14:22:10 -03:00
romulo bordezani
082656182b i18n implementation - Updating yarn.lock 2019-06-13 14:17:04 -03:00
romulo bordezani
94a7caa2c4 i18n implementation - Fixing up translations 2019-06-13 14:16:43 -03:00
romulo bordezani
b89fada19e i18n implementation - Fixing up vtk-extension's packages 2019-06-13 14:16:30 -03:00
dannyrb
89b1ce4a4e Pull out cornerstone command registration 2019-06-13 10:17:53 -04:00
dannyrb
361be79174 Toolbar row to use new types 2019-06-13 09:51:19 -04:00
dannyrb
31c987d700 Shift to new syntax; try to get only cornerstone extension working with new syntax 2019-06-13 09:50:53 -04:00
dannyrb
0318203770 Shift commands to appropriate extension 2019-06-13 09:50:07 -04:00
dannyrb
59c6c4dc34 Comment out unused code 2019-06-13 09:49:30 -04:00
dannyrb
05e8c803c9 Update example for commandsModule 2019-06-13 09:49:09 -04:00
dannyrb
209d575092 Merge branch 'feature/extensions-panels-and-docs' of github.com:dannyrb/Viewers into feature/extensions-panels-and-docs 2019-06-12 16:38:28 -04:00
Danny Brown
d0cbf577a3
Merge branch 'master' into feature/extensions-panels-and-docs 2019-06-12 16:38:28 -04:00
dannyrb
b052930123 fix connected layout manager to use extensionManager 2019-06-12 16:37:45 -04:00
dannyrb
4f6cee8960 New up and expose an extensionManager for the app 2019-06-12 16:10:57 -04:00
dannyrb
9c797233bb PLUGIN_TYPES --> MODULE_TYPES 2019-06-12 16:09:35 -04:00
dannyrb
29f86d41e6 Begin stubbing an example plugin with all options as basic docs/recipe 2019-06-12 16:09:06 -04:00
João Felipe de Medeiros Moreira
071f92e45c fix(StudyBrowser): Remove transform to fix drag/drop positioning for thumbnails (#548) 2019-06-12 20:15:51 +02:00
Rodrigo Antinarelli
45993e423d small fix 2019-06-12 13:30:08 -03:00
Rodrigo Antinarelli
8c608dc05b update branch 2019-06-12 13:22:46 -03:00
Erik Ziegler
45808dc0f1
ci(Circle): Add deploy tracking and source map upload to Rollbar (#545) 2019-06-12 15:06:24 +02:00
Erik Ziegler
9f82ef1682
chore(package.json): Update ohif-core (0.5.8) and react-viewerbase (0.7.1) (#546) 2019-06-12 14:58:30 +02:00
Erik Ziegler
0d3dcf5035
docs(netlify.toml): Fix Netlify URL path issues for deploy previews (#544) 2019-06-12 09:10:21 +02:00
romulo bordezani
ab0e2fe9e2 i18n implementation - Adding final packages 2019-06-12 03:43:02 -03:00
romulo bordezani
4a4d7a2171 Updating i18next documentation. 2019-06-12 03:35:17 -03:00
romulo bordezani
0c8cd3fbe9 Language Detection implementation, bug fixes related to i18n and debugger helper added. 2019-06-11 20:05:14 -03:00
romulo bordezani
fde6088cb1 Upgrading i18next version. 2019-06-11 14:11:28 -03:00
romulo bordezani
b4af4bed17 Adding language detector as Peer Dependency, its not working inside the rollup bundle. 2019-06-11 14:07:23 -03:00
romulo bordezani
fe4db3b2c5 VTK extension - i18n implementation. 2019-06-10 19:33:15 -03:00
romulo bordezani
d5909f8d74 Merge branch 'master' of https://github.com/OHIF/Viewers into feature/i18n-basics
# Conflicts:
#	extensions/ohif-vtk-extension/package.json
#	extensions/ohif-vtk-extension/rollup.config.js
#	extensions/ohif-vtk-extension/yarn.lock
#	package.json
#	src/App.js
#	src/components/Header/Header.js
#	yarn.lock
2019-06-10 14:54:18 -03:00
Danny Brown
ce9d956d00
Merge pull request #538 from dannyrb/master
fix: demo
2019-06-09 22:12:00 -04:00
dannyrb
55e326dde8 force bump 2019-06-09 22:11:25 -04:00
dannyrb
64a9e38de4 chore: build warnings preventing demo deploy 2019-06-09 22:09:37 -04:00
Danny Brown
7efdb40607
Merge pull request #514 from dannyrb/fix/hotkeys
Fix/hotkeys
2019-06-08 21:42:59 -04:00
dannyrb
fddcc746d9 No ESM in vanilla modules 2019-06-08 21:23:00 -04:00
dannyrb
9d9b3a7749 Make sure our app doesn't blow up if hotkeys aren't provided 2019-06-08 15:26:11 -04:00
dannyrb
78068bed4b push default hotkeys to a shared location 2019-06-08 15:25:39 -04:00
dannyrb
7f95c1284a fix: command direction for previousViewportDisplaySet 2019-06-08 15:12:19 -04:00
dannyrb
5325d2d2fe bump versions 2019-06-08 15:08:09 -04:00
Rodrigo Antinarelli
ff382b0212 Update yarn.lock 2019-06-07 19:54:49 -03:00
Rodrigo Antinarelli
5bbd6f1463 remove unused switch language buttons 2019-06-07 19:54:35 -03:00
Rodrigo Antinarelli
ebb2e83925 WIP - using yalc for react-viewerbase 2019-06-07 19:54:22 -03:00
Rodrigo Antinarelli
ee42257736 fix text 2019-06-07 19:53:56 -03:00
Rodrigo Antinarelli
fe827b5b2a add language detector lib 2019-06-07 19:53:49 -03:00
Rodrigo Antinarelli
401eab5062 update i18n documentation 2019-06-07 19:53:30 -03:00
romulo bordezani
0753e9ec3c Merge branch 'master' of https://github.com/OHIF/Viewers into feature/i18n-basics
# Conflicts:
#	extensions/ohif-vtk-extension/package.json
#	extensions/ohif-vtk-extension/rollup.config.js
#	extensions/ohif-vtk-extension/yarn.lock
#	package.json
#	src/App.js
#	src/components/Header/Header.js
#	yarn.lock
2019-06-07 17:55:53 -03:00
João Felipe Medeiros Moreira
f19cd8dd81 Merge branch 'feature/i18n-basics' of github.com:romulobordezani/Viewers into feature/i18n-basics 2019-06-07 15:36:13 -03:00
João Felipe Medeiros Moreira
42cb8e32c7 Configures hif-vtk-extention to use ohif-i18n for translation and include load more locations 2019-06-07 15:35:54 -03:00
romulo bordezani
065204a87e i18n - Documentation for i18n 2019-06-06 19:26:08 -03:00
romulo bordezani
6e295ba7c6 i18n - Documentation for i18n 2019-06-06 19:13:16 -03:00
romulo bordezani
dd1a5455d9 Merge branch 'feature/i18n-basics' of github.com:romulobordezani/Viewers into feature/i18n-basics 2019-06-06 18:59:17 -03:00
romulo bordezani
eca7d9be6a i18n - Adding Provider to non Admins 2019-06-06 18:57:45 -03:00
romulo bordezani
ebcd9b3838 i18n - Documentation 2019-06-06 18:57:19 -03:00
dannyrb
a119ca33f0 Hide our user preferences modal for now 2019-06-06 15:01:32 -04:00
Danny Brown
bee9985877
Merge branch 'master' into fix/hotkeys 2019-06-06 14:46:57 -04:00
dannyrb
e0cbc8ef4d No need for connected user preferences when header can contain info 2019-06-06 14:41:31 -04:00
João Felipe Medeiros Moreira
56b595980e Fixes conflict after pull 2019-06-06 15:12:30 -03:00
João Felipe Medeiros Moreira
9fd39dbf84 Exports provider and HOC to be used by any application without install I18Next libraries 2019-06-06 15:11:34 -03:00
Danny Brown
cbf144ff90
Merge pull request #531 from OHIF/dependabot/npm_and_yarn/extensions/ohif-cornerstone-extension/js-yaml-3.13.1
build(deps): bump js-yaml from 3.12.0 to 3.13.1 in /extensions/ohif-cornerstone-extension
2019-06-06 10:29:04 -04:00
dannyrb
2d6f9c1a05 A way to tell CircleCI not to run for this change 2019-06-06 09:15:12 -04:00
Danny Brown
713a11a584
Merge branch 'master' into dependabot/npm_and_yarn/extensions/ohif-cornerstone-extension/js-yaml-3.13.1 2019-06-06 09:05:30 -04:00
Danny Brown
338ecb43ae
Merge pull request #532 from OHIF/dependabot/npm_and_yarn/extensions/ohif-vtk-extension/js-yaml-3.13.1
build(deps): bump js-yaml from 3.12.1 to 3.13.1 in /extensions/ohif-vtk-extension
2019-06-06 09:05:17 -04:00
dependabot[bot]
bf2dd92deb
build(deps): bump js-yaml in /extensions/ohif-cornerstone-extension
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.12.0 to 3.13.1.
- [Release notes](https://github.com/nodeca/js-yaml/releases)
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/3.12.0...3.13.1)

Signed-off-by: dependabot[bot] <support@github.com>
2019-06-06 13:02:50 +00:00
Danny Brown
f1b7f42ef7
Merge branch 'master' into dependabot/npm_and_yarn/extensions/ohif-vtk-extension/js-yaml-3.13.1 2019-06-06 09:01:51 -04:00
Danny Brown
ff98a9dc4f
Merge pull request #534 from OHIF/dependabot/npm_and_yarn/extensions/ohif-dicom-pdf-extension/handlebars-4.1.2
build(deps): bump handlebars from 4.0.12 to 4.1.2 in /extensions/ohif-dicom-pdf-extension
2019-06-06 09:01:29 -04:00
dependabot[bot]
bd870a46c7
build(deps): bump js-yaml in /extensions/ohif-vtk-extension
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.12.1 to 3.13.1.
- [Release notes](https://github.com/nodeca/js-yaml/releases)
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/3.12.1...3.13.1)

Signed-off-by: dependabot[bot] <support@github.com>
2019-06-06 12:58:04 +00:00
Danny Brown
a9636410ec
Merge branch 'master' into dependabot/npm_and_yarn/extensions/ohif-dicom-pdf-extension/handlebars-4.1.2 2019-06-06 08:57:00 -04:00
Danny Brown
4aa591aaaf
Merge pull request #533 from OHIF/dependabot/npm_and_yarn/extensions/ohif-dicom-html-extension/handlebars-4.1.2
build(deps): bump handlebars from 4.0.12 to 4.1.2 in /extensions/ohif-dicom-html-extension
2019-06-06 08:56:41 -04:00
dependabot[bot]
04f03f10de
build(deps): bump handlebars in /extensions/ohif-dicom-pdf-extension
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.0.12 to 4.1.2.
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/wycats/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.0.12...v4.1.2)

Signed-off-by: dependabot[bot] <support@github.com>
2019-06-06 11:05:33 +00:00
dependabot[bot]
dfbabb8c93
build(deps): bump handlebars in /extensions/ohif-dicom-html-extension
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.0.12 to 4.1.2.
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/wycats/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.0.12...v4.1.2)

Signed-off-by: dependabot[bot] <support@github.com>
2019-06-06 11:05:26 +00:00
dannyrb
f16812c81f Remove FA external dep include 2019-06-05 21:30:18 -04:00
dannyrb
49fe195089 Change HotkeyDefinition to include label 2019-06-05 21:29:50 -04:00
Erik Ziegler
bbc598323e
fix(initWebWorkers): Fix duplicate slashes for web worker paths (#527) 2019-06-05 22:44:14 +02:00
Rodrigo Antinarelli
a747590ab8 fix typo 2019-06-05 17:36:38 -03:00
Rodrigo Antinarelli
a11fae01dc use t prop from withTranslation 2019-06-05 17:09:54 -03:00
Rodrigo Antinarelli
520f07ec23 remove yalc react-viewerbase 2019-06-05 17:09:35 -03:00
Erik Ziegler
d20492ac62
docs(circleci): Set up automatic deploys to GCP for hosting viewer.ohif.org (#491) 2019-06-05 22:08:28 +02:00
dannyrb
347680fdf5 Setting an active tool 2019-06-05 15:57:00 -04:00
Danny Brown
a111327ff6
Merge pull request #524 from dannyrb/fix/quick-toolbar-edits-and-version-bumps
Fix/quick toolbar edits and version bumps
2019-06-05 13:01:00 -04:00
dannyrb
fa525bcb43 fix(toolbar): reduce the number of tools visible on the toolbar; bump package versions to deploy other fixes 2019-06-05 12:43:03 -04:00
dannyrb
1eeada3319 Nuke tools until we can fix toolbar modules and nested buttons 2019-06-05 12:37:59 -04:00
dannyrb
531abe0fbd bump dependent package versions 2019-06-05 12:37:36 -04:00
dannyrb
680b372e14 Sneak in some eol consistency 2019-06-05 12:37:00 -04:00
diego0020
1c3f3cfcf6 initial prototype 2019-06-05 09:11:13 -05:00
romulo bordezani
236a115112 i18n - Multiple languages overrides 2019-06-04 18:16:07 -03:00
Gustavo André Lelis
3f4fbd2639
Merge pull request #518 from OHIF/bump-react-viewport
fix(react-viewport): Bump react-cornerstone-viewport
2019-06-04 14:28:47 -03:00
Gustavo Lelis
203303e1e7 fix(react-viewport): Bump react-cornerstone-viewport 2019-06-04 13:41:55 -03:00
romulo bordezani
1874f93bcc i18n - Multiple languages overrides 2019-06-04 12:34:57 -03:00
Biharck Araujo
9c58ea8f55 fix(extension-dicom-microscopy): bump microscopy and ohif-core deps, scope package name (#513) 2019-06-04 08:54:02 +02:00
romulo bordezani
d678a617dc i18n - extension extraction 2019-06-03 19:56:59 -03:00
João Felipe Medeiros Moreira
aff74bcee4 Merge branch 'feature/i18n-basics' of github.com:romulobordezani/Viewers into feature/i18n-basics 2019-06-03 18:02:11 -03:00
João Felipe Medeiros Moreira
99c95fc1e1 Creating spanish translation 2019-06-03 18:02:01 -03:00
romulo bordezani
543d8d33c1 i18n - extension extraction 2019-06-03 17:56:36 -03:00
dannyrb
a636df8fdc Pass in CommandsManager config 2019-06-03 15:41:49 -04:00
dannyrb
3f5660722e Defaults for hotkeys 2019-06-03 14:27:03 -04:00
dannyrb
afa6d78e42 push WIP 2019-06-03 13:22:05 -04:00
dannyrb
66e3b9f857 Commands list for cornerstone extension 2019-06-03 12:43:36 -04:00
dannyrb
9b838ab326 Provide store to commands manager; hard code active contexts 2019-06-03 12:22:25 -04:00
dannyrb
9326b5e63d Actions and reducers for managing UI contexts 2019-06-03 12:22:06 -04:00
dannyrb
56de51a21d Kill old code 2019-06-03 12:21:50 -04:00
dannyrb
03d66233ff Make sure we're registering a hotkey for a command that exists 2019-06-02 23:04:24 -04:00
dannyrb
6b0ef0904e Shift initialization of OHIF classes to app.js 2019-06-02 22:44:13 -04:00
dannyrb
c1f8984c1b Switch folder; dependency injection; note about moving to extensions 2019-06-02 22:43:04 -04:00
dannyrb
b0706e5544 Playing with a hotkeys + commands setup and config 2019-06-02 15:44:27 -04:00
dannyrb
d29f996e61 formatting 2019-06-02 15:44:01 -04:00
dannyrb
fabe981855 WIP hotkeys code 2019-05-31 22:09:05 -04:00
dannyrb
d9e45261f3 Registering some initial commands 2019-05-31 16:25:10 -04:00
dannyrb
ae0858bdd3 Shift store init to own directory 2019-05-31 11:55:44 -04:00
romulo bordezani
376b2c518a i18n basic setup 2019-05-30 15:41:15 -03:00
3959 changed files with 517401 additions and 83445 deletions

View File

@ -0,0 +1,346 @@
---
name: ohif-test-agent
description: Generate runnable Playwright E2E tests for the OHIF Viewer using its custom fixture system, page objects, and normalized WebGL viewport coordinates. Use this skill whenever the user asks to write, add, modify, or debug tests in an OHIF/Viewers context — including vague asks like "write a test for X" when working in the OHIF repo, tests touching platform/app/tests/, or anything involving Cornerstone viewports, DICOM studies, measurements, segmentations, or OHIF modes/extensions. Prefer this skill over generic test-writing even if the user doesn't say "Playwright" or "E2E" explicitly.
---
# OHIF Test Agent
This skill teaches you to generate correct, runnable Playwright end-to-end tests for the OHIF Viewer. Follow the workflow below.
## Environment model
This package follows the agentskills.io SKILL.md convention. `SKILL.md` is the entire behavior contract — there is no separate runtime entrypoint.
## Workflow: how to write a new OHIF test
1. **Classify the feature.** What area does the test belong to — a measurement tool, segmentation hydration, contour panel interaction, MPR layout, crosshairs, tag browser, etc.? The area determines the mode, the StudyInstanceUID, and the seed spec you'll read.
2. **Read the seed spec.** Consult [references/patterns-by-feature.md](references/patterns-by-feature.md) to find the canonical existing spec for that area. Read it end-to-end before writing. This is the single most important step — OHIF specs follow consistent idioms that are easier to mimic than to reconstruct from first principles. (This mirrors Playwright's own agent guidance: use seed tests as the example for generated tests.)
3. **Scaffold from the template.** Start from [assets/spec-template.ts](assets/spec-template.ts) — or copy the seed spec and adapt.
4. **Look up specifics in the source, not from memory.** The reference files [page-objects.md](references/page-objects.md) and [utilities.md](references/utilities.md) capture the **stable rules** — fixture keys, import conventions, access idioms, the reasons certain things trip people up. They deliberately do not enumerate methods. For the current method surface or a utility's exact signature, open the relevant file under `tests/pages/` or `tests/utils/` — the source evolves, and the source is always right. The seed spec you picked in step 2 is usually the fastest second source, because it co-evolves with the API.
5. **Run the test when execution is available.** `pnpm run test:e2e:ci` runs the whole suite, but for iteration use `TEST_ENV=true pnpm exec playwright test tests/YourNew.spec.ts` (or the Playwright VS Code extension). Invoke Playwright directly for targeted flags; `pnpm run test:e2e -- ...` inserts a `--` separator that can prevent Playwright from parsing options such as `--update-snapshots` and `--reporter`.
6. **If runtime execution is unavailable, do static validation.** Validate import source, fixture keys, normalized viewport usage, UID/mode pairing, and hydration/tracking prompt handling. Then report clearly that execution was not performed.
7. **If it fails, triage before debugging.** Use [references/failure-triage.md](references/failure-triage.md) — most OHIF test failures are timing / hydration, not real regressions.
## Architecture
OHIF uses Playwright with a custom fixture system. Tests are **not** vanilla Playwright — they import `test`, `expect`, and utilities from `./utils`, which re-exports an extended test runner that injects page objects.
```text
playwright.config.ts → Chromium-only, port 3335, data-cy as testId
└─ tests/utils/fixture.ts → Extends playwright-test-coverage, injects page objects
└─ tests/*.spec.ts → Each imports { test, expect, ... } from './utils'
├─ tests/pages/ → Page objects (ViewportPageObject, MainToolbarPageObject, …)
└─ tests/utils/ → Utilities (visitStudy, checkForScreenshot, screenShotPaths, …)
```
Why the custom fixture matters: the page objects are created for each test and bound to the right Playwright `page`. If you `new ViewportPageObject(page)` manually, you skip the fixture wiring and some sub-objects won't resolve correctly.
### Import rule
```ts
// Correct
import { test, expect, visitStudy, checkForScreenshot, screenShotPaths } from './utils';
// Wrong — will compile but fixtures won't be injected
import { test, expect } from '@playwright/test';
```
A few utilities (`press`, `downloadAsString`, the `assert*` helpers) are NOT re-exported from `./utils`. See [references/utilities.md](references/utilities.md) for the correct import path per utility.
## The viewport is WebGL
OHIF renders medical images onto a WebGL canvas. You cannot query *canvas* pixels by CSS selector. Use **normalized coordinates** (01 range, top-left is `{x:0, y:0}`) for clicks and drags, and **visual regression** (screenshot comparison) for canvas assertions. (Not everything in the viewport is canvas — some overlays render as SVG you *can* query via DOM, e.g. a vector overlay's color through `getSvgAttribute`. The canvas rule is about raster output painted onto the WebGL surface.)
```ts
const activeViewport = await viewportPageObject.active;
await activeViewport.normalizedClickAt([{ x: 0.5, y: 0.5 }]); // click center
await activeViewport.normalizedClickAt([{ x: 0.3, y: 0.3 }, { x: 0.7, y: 0.7 }]); // draw two points
await activeViewport.normalizedClickAt([{ x: 0.5, y: 0.5 }], 'right'); // right-click
await activeViewport.normalizedDragAt({
start: { x: 0.3, y: 0.3 },
end: { x: 0.7, y: 0.7 },
});
```
Pixel coordinates (`clickAt`, `doubleClickAt`) exist but prefer normalized for portability across viewport sizes.
For DOM-rendered state (panel counts, dialog text, overlay text values, button enabled states), assert directly:
```ts
await expect(activeViewport.overlayText.bottomRight.instanceNumber).toContainText('17/');
const count = await rightPanelPageObject.measurementsPanel.panel.getMeasurementCount();
expect(count).toBe(1);
```
## Study loading lifecycle
Every test follows this sequence. Skipping steps causes flakiness:
```ts
test.beforeEach(async ({ page }) => {
const studyInstanceUID = '1.3.6.1.4.1.25403.345050719074.3824.20170125095438.5';
const mode = 'viewer';
await visitStudy(page, studyInstanceUID, mode, 2000); // 2s delay is the community norm
});
```
`visitStudy` navigates to `/{mode}/ohif?StudyInstanceUIDs={uid}`, waits for `domcontentloaded`, then `networkidle`, then the explicit delay. Default delay is `0`, but most specs pass `2000` to let the first render settle.
Delay by scene type (observed across the current suite, not a rule to apply blindly):
| Scene | Delay |
|-------|-------|
| Default (viewer mode, 2D/MPR/3D layouts, crosshairs) | `2000` |
| `mode: 'tmtv'` | `10000` — PET fusion + SUV calculation takes noticeably longer |
Start at the convention for your scene; ramp only if the test flakes on initial render. 3D layouts in `viewer` mode already stay at `2000` — the stabilization problem there is solved with `attemptAction(() => reduce3DViewportSize(page), 10, 100)`, not with a longer `visitStudy` delay.
If the study has DICOM SEG, RT, or SR data, OHIF asks whether to hydrate. Handle it:
```ts
await leftPanelPageObject.loadSeriesByModality('SEG'); // or 'RTSTRUCT', 'SR'
await page.waitForTimeout(3000); // allow the prompt to appear
await expect(DOMOverlayPageObject.viewport.segmentationHydration.locator).toBeVisible();
await DOMOverlayPageObject.viewport.segmentationHydration.yes.click();
```
The first measurement you create triggers a "start tracking?" prompt:
```ts
await DOMOverlayPageObject.viewport.measurementTracking.confirm.click();
```
For 3D / MPR scenes, wrap stabilization in `attemptAction(() => reduce3DViewportSize(page), 10, 100)` or insert a `page.waitForTimeout(...)` after the layout change before asserting.
## Wait for renders, don't sleep
`page.waitForTimeout(...)` after an action that re-renders the viewport is a smell. The viewports tell us when they're done — use that signal. `tests/utils/waitForViewportsRendered.ts` exposes three helpers, all barrel-exported from `./utils`:
- `waitForViewportRenderCycle(page)` — wait for the next full cycle: a viewport enters `needsRender`, then **all** viewports report `rendered` (and volumes are loaded, by default).
- `waitForViewportsRendered(page)` — only the second half: wait until all viewports are `rendered`. Use this when the action has already requested a render before you started waiting (e.g. a layout change or `loadSeriesByDescription`).
- `waitForAnyViewportNeedsRender(page)` — only the first half. Rarely needed directly.
The canonical idiom — **start the watcher before the action, await it after**:
```ts
// start watching for the next render cycle
const viewportRenderCycle = waitForViewportRenderCycle(page);
await action(); // e.g. segmentationHydration.yes.click(), layoutSelection.MPR.click(), addSegmentation, etc.
// wait for the render to finish
await viewportRenderCycle;
await check(); // e.g. checkForScreenshot, count assertion, overlay text
```
Why "start before"? `waitForViewportRenderCycle` first waits for a viewport to enter `needsRender`. If you start it **after** the action, that transition may already be over and you'll hang until the timeout. Starting it first captures the cycle the action is about to trigger.
When to use which:
| Situation | Helper |
|-----------|--------|
| Click that triggers a re-render and you want to assert after | `waitForViewportRenderCycle(page)` started before the click |
| Layout switch / series load — render already in flight | `await waitForViewportsRendered(page)` after the call |
| Compose with another await (e.g. screenshot the same time as load) | Save the promise, `await` it later |
Replace patterns like this:
```ts
// ❌ Sleep-and-pray
await action();
await page.waitForTimeout(5000);
await checkForScreenshot(...);
// ✅ Wait on the actual signal
const cycle = waitForViewportRenderCycle(page);
await action();
await cycle;
await checkForScreenshot(...);
```
This shaves real wall-clock time off the suite and removes a class of flake (sleep too short → flake; sleep too long → slow). `tests/SEGHydrationFromMPR.spec.ts` is the canonical seed for this pattern.
Caveats:
- These helpers wait on Cornerstone viewport state. They won't help for purely DOM-side state (panel rows appearing, dialogs opening) — for those, prefer `expect(locator).toHaveCount(n)` / `toBeVisible()` which auto-retry, or `expect.toPass({ timeout })`.
- For some actions (hanging-protocol changes are the documented example) the viewport doesn't transition through `needsRender` synchronously — those still need a short `waitForTimeout`. The source comment in `waitForViewportsRendered.ts` calls this out.
## Fixture-injected page objects
Destructure these from the test function argument. **Never `new` them manually.**
```ts
test('my test', async ({
page,
viewportPageObject,
mainToolbarPageObject,
leftPanelPageObject,
rightPanelPageObject,
DOMOverlayPageObject, // note the capital D — this matches the fixture key
notFoundStudyPageObject,
}) => { ... });
```
Two page objects are **not** fixture-injected:
- `DataOverlayPageObject` — reach via `viewportPageObject.getById(id).overlayMenu.dataOverlay`.
- `DicomTagBrowserPageObject` — reach via `DOMOverlayPageObject.dialog.dicomTagBrowser`.
See [references/page-objects.md](references/page-objects.md) for fixture rules and a map of which file covers which concern; read the `.ts` file under `tests/pages/` for the current method surface.
## When the control you need has no page object yet
A spec must not reach for `page.getByTestId(...)` / `getByRole(...)` directly for
application controls. If the button, menu, dialog, or field you need isn't already
exposed by a page object, **add it to one — or create a new page object — instead of
inlining a raw selector.** Raw selectors in a spec are the clearest sign a test was
written without reading the existing suite: they duplicate locators, bypass the
fixture wiring, and rot silently when the DOM changes.
Where new coverage goes:
| What you need | Where it belongs |
|---|---|
| A toolbar button or tool (Zoom, Pan) | a getter on `MainToolbarPageObject`, next to `crosshairs` / `measurementTools` |
| A menu, prompt, context menu, or small dialog | `DOMOverlayPageObject` |
| A substantial dialog with its own fields (User Preferences) | its **own** page object class, reached through `DOMOverlayPageObject` — follow `DicomTagBrowserPageObject` (`DOMOverlayPageObject.dialog.dicomTagBrowser`) |
| Each field/row inside that dialog | a method or sub-object on the dialog's page object — not a raw selector in the spec |
| A side-panel control | `LeftPanelPageObject` / `RightPanelPageObject` |
If the control has no `data-cy`, **add `data-cy` to the source component** and target
it — don't fall back to `getByRole`/text selectors, which are brittle and
locale-sensitive (`testIdAttribute` is `data-cy`, so `getByTestId('Zoom')` resolves
`[data-cy="Zoom"]`). Call out any `data-cy` you add so it ships in the same PR.
**Worked example — "set the Zoom hotkey in User Preferences":** the options menu, the
preferences dialog, each preference field, and the Zoom toolbar button should all be
page-object surface — e.g. `mainToolbarPageObject.zoom`,
`DOMOverlayPageObject.optionsMenu.settings.click()`,
`DOMOverlayPageObject.dialog.userPreferences.hotkey('Zoom').set('q')`. The spec then
reads as intent, not as a pile of `getByTestId` calls.
## Assert the effect, not just the attribute
Prefer asserting the actual rendered result over a proxy attribute. Activating Zoom and
checking `data-active="true"` confirms the *button* toggled — not that zoom works. Drag
on the viewport and assert the image actually zoomed (a viewport-scoped screenshot, or a
measurable state change). Attribute checks are fine as a secondary signal, not the whole
test.
## Visual regression
**Direction:** the suite is moving off *full-app* screenshots — not off screenshots
altogether. "Avoid screenshots" means: don't screenshot the whole page, and don't
screenshot something that has a faithful DOM/state signal. It does **not** mean avoid
screenshots for output that is genuinely canvas-only — for that output a screenshot is
the correct and required tool, and you should use it without apology. Older specs that
screenshot the whole page are the legacy pattern being phased out; viewport-scoped
screenshots are not.
### Screenshot vs. DOM assertion — how to choose
Reach for the cheapest *faithful* signal, in this order:
1. **A faithful DOM/SVG/state signal exists → assert on it.** Panel counts, dialog and
overlay text, enabled/disabled state, and any overlay that renders as SVG (a vector
overlay's color is readable via `getSvgAttribute`) all have a DOM representation — assert
on it directly, no screenshot.
2. **The thing under test is painted onto the WebGL canvas with no DOM representation → a
screenshot is correct and required.** Raster output on the canvas exposes no attribute to
read for a painted pixel. Scope a `checkForScreenshot` to the viewport (pane or grid) and
assert it — this is the right tool, not a last resort, whenever what you're verifying is
the rendered canvas itself.
3. **Never substitute a service/state read for a render assertion.** Reading a service's
state (any `window.services...`) asserts the *data model*, not the pixels the user sees —
it passes even when rendering is broken. `page.evaluate(() => window.services...)` is an
escape hatch for *setup*, not for *appearance* assertions.
For anything drawn onto the WebGL canvas with no DOM signal, compare a screenshot scoped to a specific viewport or the viewport grid:
```ts
await checkForScreenshot({
page,
locator: viewportPageObject.grid, // scope to the viewport grid — not the whole page
screenshotPath: screenShotPaths.length.lengthDisplayedCorrectly,
});
```
`checkForScreenshot` retries up to 10 times at 500 ms intervals. Use `screenShotPaths.<category>.<name>` rather than a hand-typed string — the tree of valid keys lives in `tests/utils/screenShotPaths.ts`.
Rules (apply to all new screenshot assertions):
- **Use the object form.** The positional form is legacy; don't introduce it in new code, and don't treat existing positional-form usage as a pattern to copy.
- **Never screenshot the full app.** Full-page screenshots include panels, toolbars, and dialogs that drift independently of what's under test and make baselines fragile. Scope by passing a `locator``viewportPageObject.grid` for the grid, or a specific viewport pane. A bare `normalizedClip: { x: 0, y: 0, width: 1, height: 1 }` with no `locator` is **not** scoping — it clips to the full page. Use `normalizedClip` only to target a sub-region *of a locator* (e.g. a scrollbar strip). If you reach for `fullPage: true`, stop and pick a locator.
- **Do not tune `maxDiffPixelRatio` or `threshold`** to make a screenshot pass. If a baseline mismatches, regenerate it after a human review of the diff, or fix the underlying flake.
## Playwright config facts worth remembering
| Setting | Value | Why |
|---------|-------|-----|
| `baseURL` | `http://localhost:3335` | OHIF e2e uses 3335, not 3000 |
| `testIdAttribute` | `data-cy` | `getByTestId(...)` maps to `[data-cy="..."]` |
| `browser` | Chromium only | Firefox/WebKit disabled (SharedArrayBuffer + stability) |
| `retries` | 3 in CI, 0 locally | Flaky rendering needs CI retries |
| `workers` | 6 in CI, undefined locally | Parallel execution |
| `globalTimeout` / `timeout` | 800_000 ms | Medical image loads are slow |
| `actionTimeout` | 10_000 ms | Per-action cap |
| `webServer.command` | `cross-env APP_CONFIG=config/e2e.js COVERAGE=true OHIF_PORT=3335 nyc yarn start` | e2e config + coverage |
## Test data: which study for which test
| StudyInstanceUID | Mode | Used for |
|------------------|------|----------|
| `1.3.6.1.4.1.25403.345050719074.3824.20170125095438.5` | `viewer` | General measurements, annotations, context menu |
| `1.3.6.1.4.1.14519.5.2.1.1706.8374.643249677828306008300337414785` | `viewer` | 3D, MPR, crosshairs |
| `1.3.6.1.4.1.14519.5.2.1.256467663913010332776401703474716742458` | `viewer` or `segmentation` | Labelmap SEG |
| `1.2.840.113619.2.290.3.3767434740.226.1600859119.501` | `viewer` / `segmentation` / `tmtv` | RTSTRUCT/contour and TMTV |
| `1.3.6.1.4.1.14519.5.2.1.7695.4007.324475281161490036195179843543` | `viewer` | SR hydration |
Full mapping in [references/patterns-by-feature.md](references/patterns-by-feature.md). **Do not invent UIDs** — they must exist on the e2e data server.
## Rules (short, so they're actually read)
1. Import `test`, `expect`, and utilities from `./utils`, not `@playwright/test`.
2. Destructure fixture-injected page objects; don't `new` them.
3. Use normalized coordinates (01) for viewport interactions.
4. Use `visitStudy` with a real UID, correct mode, and a non-zero delay (2000 is conventional).
5. Handle hydration and measurement-tracking prompts where applicable.
6. Choose the faithful signal: DOM/SVG assertions where the rendered result has one (panels, dialogs, overlay text, SVG/vector overlays), a viewport-scoped screenshot when what you're verifying is canvas-only raster output, and never a `window.services` state read standing in for a render check. Screenshots use the object form, scoped via a `locator` — never the full app.
7. Use `data-cy` selectors (already wired via `testIdAttribute`).
8. When an assertion needs retry tolerance, wrap it in `expect.toPass({ timeout })`.
9. Test in the correct mode — segmentation tools aren't available in `viewer` mode.
10. If a utility isn't exported from `./utils`, import from the deeper path (see [references/utilities.md](references/utilities.md)).
11. After an action that re-renders the viewport, prefer `waitForViewportRenderCycle(page)` (started before the action) over `page.waitForTimeout(...)`. See the "Wait for renders, don't sleep" section.
12. Don't inline raw `page.getByTestId(...)` / `getByRole(...)` for app controls. If a control has no page object, create or augment one (see "When the control you need has no page object yet"), adding a `data-cy` to the source if needed.
13. Assert the actual effect (e.g. the image zoomed), not just a proxy attribute like `data-active`.
## Pre-output self-check (mandatory)
Before returning a generated OHIF test, confirm all items:
1. Imports `test`/`expect` from `./utils` (not `@playwright/test`).
2. Uses fixture-injected keys and exact casing (especially `DOMOverlayPageObject`).
3. Uses normalized viewport interactions (`normalizedClickAt` / `normalizedDragAt`) unless there is a strong reason otherwise.
4. Uses a valid canonical StudyInstanceUID and compatible mode.
5. Handles hydration or measurement tracking prompts when the workflow requires them.
6. Uses the faithful signal for each assertion — DOM/SVG where the result has a DOM representation, a viewport-scoped screenshot when what's verified is canvas-only raster output, and never a `window.services` state read in place of a render check. Any `checkForScreenshot` call uses the object form, scoped via a `locator` (viewport pane or grid) — no full-app screenshots.
7. Replaces `page.waitForTimeout(...)` after viewport-rendering actions with `waitForViewportRenderCycle(page)` (started before the action) — keeps `waitForTimeout` only for non-render waits like the hydration prompt in `beforeEach`.
8. If execution was skipped, states that explicitly and provides concrete run commands.
9. Every application control is reached through a page object — no raw `getByTestId`/`getByRole` in the spec for buttons, menus, dialogs, or fields. Any control not already covered was added to the right page object (or a new one), with a source `data-cy` if it lacked one.
10. Assertions verify the real effect where feasible (e.g. the image visibly zoomed), not only an attribute toggle.
## Output contract (for non-executing agents)
When execution cannot be performed in the current environment, the response should include:
1. The test code.
2. Assumptions made (if any).
3. Static checks that were verified.
4. What still must be run locally and exact commands to run.
## When to consult each reference
- **Before writing** → [references/patterns-by-feature.md](references/patterns-by-feature.md). Pick the seed spec for the feature area and read it. The seed spec is the closest thing to a live API example because it co-evolves with the code.
- **For a stable rule or idiom** (fixture keys, import paths, panel-access order, capital-D quirk, object-param convention) → [references/page-objects.md](references/page-objects.md), [references/utilities.md](references/utilities.md).
- **For a method name, property, or signature** → read the source under `tests/pages/` or `tests/utils/`. Do not rely on a static table for these; they drift as the code is refactored.
- **When a test fails** → [references/failure-triage.md](references/failure-triage.md).

View File

@ -0,0 +1,54 @@
import {
checkForScreenshot,
expect,
screenShotPaths,
test,
visitStudy,
waitForViewportRenderCycle,
} from './utils';
test.beforeEach(async ({ page }) => {
// Pick the right UID + mode for your feature (see references/patterns-by-feature.md)
const studyInstanceUID = '1.3.6.1.4.1.25403.345050719074.3824.20170125095438.5';
const mode = 'viewer';
await visitStudy(page, studyInstanceUID, mode, 2000);
});
test.describe('FEATURE NAME', () => {
test('describes the behaviour in one sentence', async ({
page,
viewportPageObject,
mainToolbarPageObject,
rightPanelPageObject,
DOMOverlayPageObject, // capital D on purpose
}) => {
// 1. Arrange — select a tool, open a panel, etc.
// 2. Act — interact with the viewport.
// Prefer normalized (01) coordinates:
// const activeViewport = await viewportPageObject.active;
// await activeViewport.normalizedClickAt([{ x: 0.3, y: 0.3 }, { x: 0.7, y: 0.7 }]);
// For actions that re-render the viewport, gate on the render cycle
// instead of sleeping — start the watcher BEFORE the action:
// const cycle = waitForViewportRenderCycle(page);
// await action();
// await cycle;
// 3. Handle prompts (first measurement prompts for tracking; SEG/RT/SR prompts for hydration)
// await DOMOverlayPageObject.viewport.measurementTracking.confirm.click();
// 4. Assert canvas output via visual regression — object form, scoped to the
// viewport via a locator (not the full page). normalizedClip is only for
// clipping to a sub-region of that locator.
// await checkForScreenshot({
// page,
// locator: viewportPageObject.grid,
// screenshotPath: screenShotPaths.YOUR_CATEGORY.YOUR_KEY,
// });
// 5. Assert DOM state directly
// const count = await rightPanelPageObject.measurementsPanel.panel.getMeasurementCount();
// expect(count).toBe(1);
});
});

View File

@ -0,0 +1,72 @@
# Failure triage
Before debugging, classify. Most OHIF test failures are timing or hydration — not real regressions.
| Category | Symptom | Fix |
|----------|---------|-----|
| Timing | Element not visible, action timeout | Add / increase the `delay` param of `visitStudy`; for actions that re-render viewports, use `waitForViewportRenderCycle(page)` (started before the action) instead of `waitForTimeout`; wrap the assertion in `expect.toPass({ timeout })` |
| Selector | Element not found | Verify `data-cy` on the target; confirm the panel is open (`toggle()` / `select()` before interacting); check for capital `D` in `DOMOverlayPageObject` when destructuring |
| Hydration | Segmentation/RT/SR not interactive | Ensure the `segmentationHydration.yes.click()` fired; wait for an observable hydrated state such as measurement/segment rows or the target series overlay, then wait for the resulting viewport render |
| Data | Study not found, empty viewport | Confirm the UID is in the canonical list (see [patterns-by-feature.md](patterns-by-feature.md)); confirm the mode supports the feature (segmentation tools aren't in `viewer` mode) |
| Visual drift | Screenshot mismatch but feature works | Have a human review the diff, then regenerate the baseline with `TEST_ENV=true pnpm exec playwright test --update-snapshots`. Do not adjust `maxDiffPixelRatio` or `threshold` to make a failing screenshot pass. |
| Real regression | Feature is actually broken | Report as a bug — this is the test doing its job |
## Prefer render-cycle waits over sleeps
If you're tempted to add `await page.waitForTimeout(2000)` after an action, ask whether the action re-rendered the viewport. If it did, use:
```ts
const cycle = waitForViewportRenderCycle(page);
await action();
await cycle;
await check();
```
The watcher must be created **before** the action — it waits for `needsRender` first, and that transition is gone by the time the action returns. See the "Wait for renders, don't sleep" section in [SKILL.md](../SKILL.md) and `tests/SEGHydrationFromMPR.spec.ts`.
### When the cycle helper times out at `waitForAnyViewportNeedsRender`
Symptom: the test fails inside `waitForAnyViewportNeedsRender` after 5s, with the action having actually completed in the UI. The action just doesn't transition the viewport through `needsRender` synchronously. Known cases:
- Hanging-protocol changes.
- **RTSTRUCT / contour segmentation hydration confirm.** SEG (labelmap) hydration does fire `needsRender`; contour does not. The fix is to gate on the actual end-state — for hydration in `beforeEach`, `await expect(page.getByTestId('data-row')).toHaveCount(N)` is the right wait.
Don't react by raising the cycle's timeout — the transition isn't coming. Replace the cycle wrapper with an auto-retrying DOM/SVG assertion, or `expect.toPass({ timeout })` around the assertion block.
An immediate `waitForViewportsRendered(page)` can also return too early when a click dispatches work through an asynchronous state machine: the old viewport is already `rendered` before the new series or annotations are applied. In that case, first wait for the target state (for example, hydrated measurement rows or the expected series overlay), then call `waitForViewportsRendered(page)` to settle that state's render.
## The `toPass` pattern
When an assertion needs to wait for async render / propagation:
```ts
await expect(async () => {
await rightPanelPageObject.labelMapSegmentationPanel.panel.segmentByText('Spleen').click();
await expect(activeViewport.overlayText.bottomRight.instanceNumber).toContainText('17/');
}).toPass({ timeout: 10_000 });
```
`toPass` reruns the assertion block until it succeeds or the timeout expires — cleaner than a hand-rolled retry loop and surfaces the last failure reason if it times out.
## Common `DOMOverlayPageObject` mistake
The fixture key is capital-D `DOMOverlayPageObject`, not lowercase. If your destructure is silently `undefined`, check the casing.
## `press` import mistake
`press` is NOT re-exported from `./utils`. `import { press } from './utils'` resolves to `undefined` and fails at runtime. Use:
```ts
import { press } from './utils/keyboardUtils';
await press({ page, key: 'ArrowDown', nTimes: 50 }); // object param, not (page, key)
```
## Visual regression iteration
Screenshots live under `tests/screenshots/chromium/<testFilePath>/`. To accept new output as the baseline:
```sh
TEST_ENV=true pnpm exec playwright test tests/YourSpec.spec.ts --update-snapshots
```
Review the resulting PNGs carefully — an agent-accepted baseline that's subtly wrong is worse than a failing test.

View File

@ -0,0 +1,120 @@
# OHIF Page Object guide
> This file documents the **stable structural rules** of the page object system. For the current list of methods and properties on any class, **read the source under `tests/pages/`** — it is always authoritative, and it evolves as the product does. A static method table in a reference file goes stale the moment someone refactors; the source does not.
## How to discover the API of a page object
1. Find the relevant class in `tests/pages/`. File names match class names.
2. Read it end-to-end once — most are under a few hundred lines.
3. Some classes compose sub-objects (e.g. `RightPanelPageObject` holds a measurementsPanel, contourSegmentationPanel, labelMapSegmentationPanel, tmtvPanel, etc.). Those sub-objects usually live in the same file or a sibling under `tests/pages/`.
4. To see how a method is actually used, grep `tests/` or open the seed spec listed in [patterns-by-feature.md](patterns-by-feature.md). Real usage beats a synthesized signature every time.
Do not try to memorize a method surface from this file — it intentionally does not list one. It lists only the rules you cannot derive from the source by reading a single file.
---
## Stable rules
### Fixture keys (case-sensitive)
These are injected via `tests/utils/fixture.ts`. Destructure them from the test function's first argument — do not `new` them, because the fixture wires sub-objects to the correct `page` and hand-constructed instances skip that wiring.
- `viewportPageObject`
- `mainToolbarPageObject`
- `leftPanelPageObject`
- `rightPanelPageObject`
- `DOMOverlayPageObject`**capital D**. A silent `undefined` destructure is almost always a casing typo here.
- `notFoundStudyPageObject`
If the fixture file is updated and new keys are added, they will show up there first — check it if something feels missing.
### Non-fixture page objects
Some page object classes are not fixture-injected. They are reached through an injected fixture:
- `DicomTagBrowserPageObject` → via `DOMOverlayPageObject.dialog.dicomTagBrowser`
- `DataOverlayPageObject` → via `viewportPageObject.getById(viewportId).overlayMenu.dataOverlay`
Both can be constructed manually (`new DataOverlayPageObject(page)`) if a test really needs a fresh instance, but the accessor path is the idiomatic one.
### Viewport wrapper vs. viewport instance
`viewportPageObject` is a **wrapper**. You almost always want a specific viewport out of it first:
- `await viewportPageObject.active` — the currently focused viewport
- `viewportPageObject.getAll()` — every viewport in the grid
- `viewportPageObject.getNth(i)` — zero-indexed
- `viewportPageObject.getById(cornerstoneViewportId)` — e.g. `'default'`, `'ctAXIAL'`
The object these return is the one with `normalizedClickAt`, `normalizedDragAt`, `overlayText`, `nthAnnotation`, etc. Reach for the viewport instance first, then call methods on it.
### Panel access order
Every `rightPanelPageObject` sub-panel follows the same three-step idiom: **open the side panel, `.select()` the sub-panel tab, then interact with `.panel.*`**. Skipping either of the first two is the most common cause of "element not found".
```ts
await rightPanelPageObject.toggle();
await rightPanelPageObject.measurementsPanel.select();
const count = await rightPanelPageObject.measurementsPanel.panel.getMeasurementCount();
```
The exact row/action methods vary by panel — check the source file for the one you need.
### Layout identifiers are camelCase JS properties
`mainToolbarPageObject.layoutSelection.<layout>.click()` — access layouts by camelCase property name (e.g. `threeDFourUp`, `axialPrimary`), not with bracket-escaped DICOM-ish strings like `['3DFourUp']`. This is a convention enforced by how the class exposes its tools.
### Sub-tools auto-open their dropdown
Tools nested inside a toolbar dropdown (measurement tools, more tools, layouts) each expose a `.click()` that opens the parent menu for you. You almost never need to open the menu first. `await mainToolbarPageObject.measurementTools.length.click()` does both the expand and the select.
### When the control you need isn't covered yet — create or augment
The page objects here cover what the suite currently exercises. When your test needs a
control that isn't exposed, **extend the page object system rather than dropping a raw
`page.getByTestId(...)` into the spec.** A raw selector in a spec is the clearest tell
that the author didn't read the existing tests — it duplicates a locator that should
live in one place and bypasses the fixture wiring.
| What you need | Where it goes | Precedent to copy |
|---|---|---|
| A toolbar button/tool (Zoom, Pan) | a getter on `MainToolbarPageObject` | `crosshairs`, `measurementTools` |
| A menu / prompt / context menu / small dialog | `DOMOverlayPageObject` | `viewport.measurementTracking`, `dialog.input` |
| A large dialog with its own fields (User Preferences) | a **new** page object class reached via `DOMOverlayPageObject` | `DicomTagBrowserPageObject` (`DOMOverlayPageObject.dialog.dicomTagBrowser`) |
| Individual fields/rows in that dialog | methods/sub-objects on the dialog's page object | `DicomTagBrowserPageObject.seriesSelect` |
| Side-panel controls | `LeftPanelPageObject` / `RightPanelPageObject` | existing sub-panels |
Two more expectations:
- **Missing `data-cy`?** Add it to the source component and target it; don't fall back
to `getByRole`/text. `testIdAttribute` is `data-cy`, so `getByTestId('Zoom')` resolves
`[data-cy="Zoom"]`. Mention any attribute you added so it ships in the same PR.
- **Mirror the existing shape.** A new getter should look like its neighbors (return a
locator, or a small object with `.click()` etc.) so the new surface is
indistinguishable from what was already there.
Example — a "set the Zoom hotkey" test should make `mainToolbarPageObject.zoom`, an
options-menu accessor on `DOMOverlayPageObject`, and a `userPreferences` dialog page
object (with a per-hotkey field accessor) exist — then the spec reads as steps, not
selectors.
---
## Page object map — what each class is *for*
This table exists to help you pick the right file to open, not to enumerate methods. Source of truth for any specific method remains the `.ts` file.
| Class | File | Covers |
|-------|------|--------|
| ViewportPageObject | `tests/pages/ViewportPageObject.ts` | Cornerstone viewports — clicks, drags, overlays, annotations, crosshairs |
| MainToolbarPageObject | `tests/pages/MainToolbarPageObject.ts` | Top toolbar — measurement tools, more tools, layouts, crosshairs, pan |
| LeftPanelPageObject | `tests/pages/LeftPanelPageObject.ts` | Study browser — thumbnails, load by modality or description |
| RightPanelPageObject | `tests/pages/RightPanelPageObject.ts` | Side panels — measurements, contour seg, labelmap seg, TMTV, microscopy |
| DOMOverlayPageObject | `tests/pages/DOMOverlayPageObject.ts` | DOM overlays — dialogs, hydration/tracking prompts, context menus, tag-browser accessor |
| NotFoundStudyPageObject | `tests/pages/NotFoundStudyPageObject.ts` | Study-not-found error page |
| DicomTagBrowserPageObject | `tests/pages/DicomTagBrowserPageObject.ts` | Tag-browser dialog (non-fixture; reach via `DOMOverlayPageObject.dialog`) |
| DataOverlayPageObject | `tests/pages/DataOverlayPageObject.ts` | Data-overlay menu (non-fixture; reach via `viewport.overlayMenu`) |
If the directory adds or renames a file, that diff is your first clue and this table is your second — trust the directory.
For live usage, the seed spec in [patterns-by-feature.md](patterns-by-feature.md) shows how a class is actually called; the source file tells you everything else that's on it.

View File

@ -0,0 +1,148 @@
# Seed specs by feature area
> When writing a new OHIF test, find the closest feature area below and read the listed spec in full before writing. Playwright's own guidance says the seed test "serves as an example of all the generated tests" — that applies here.
>
> **If a spec listed below has moved or been renamed**, grep `tests/` for a remaining example (e.g. `grep -rn "loadSeriesByModality('RTSTRUCT')" tests/`). The pattern matters more than the exact filename — specs get renamed, the feature area persists.
>
> **No close match below?** This list only covers areas with a seed worth copying; don't add a stub for every untested area. See [Feature area not listed above?](#feature-area-not-listed-above-no-existing-seed).
## Canonical study UIDs
| UID | Mode(s) | What it has |
|-----|---------|-------------|
| `1.3.6.1.4.1.25403.345050719074.3824.20170125095438.5` | `viewer` | CT — default for measurement/annotation tests |
| `1.3.6.1.4.1.14519.5.2.1.1706.8374.643249677828306008300337414785` | `viewer` | CT volume for 3D/MPR/crosshairs |
| `1.3.6.1.4.1.14519.5.2.1.256467663913010332776401703474716742458` | `viewer` or `segmentation` | CT + SEG for labelmap tests |
| `1.2.840.113619.2.290.3.3767434740.226.1600859119.501` | `viewer` / `segmentation` / `tmtv` | CT + RTSTRUCT + PET, used for contour and TMTV |
| `1.3.6.1.4.1.14519.5.2.1.7695.4007.324475281161490036195179843543` | `viewer` | SR structured report |
Do not invent UIDs — they must exist on the e2e data server.
---
## 1. Simple measurement tools (length, angle, bidirectional, rectangle, ellipse, circle)
**Seed:** `tests/Length.spec.ts`, `tests/Angle.spec.ts`
Pattern: select tool via `mainToolbarPageObject.measurementTools.<tool>.click()`, place N points via `activeViewport.normalizedClickAt([...])`, confirm the tracking prompt, screenshot via `screenShotPaths.<name>.<name>DisplayedCorrectly`.
## 2. Freehand / spline / livewire ROIs
**Seed:** `tests/FreehandROI.spec.ts`, `tests/Livewire.spec.ts`, `tests/Spline.spec.ts`
Pattern: `normalizedDragAt({ start, end, config: { steps: 20, delay: 30 } })` for smooth strokes; `subscribeToMeasurementAdded` to assert the event fires; `activeViewport.nthAnnotation(0)` to reference what was drawn.
## 3. Annotations (arrow, probe)
**Seed:** `tests/ArrowAnnotate.spec.ts`, `tests/Probe.spec.ts`
Arrow annotate opens `DOMOverlayPageObject.dialog.input` for the label. Use `fillAndSave(label)`.
## 4. Measurement panel interactions
**Seed:** `tests/MeasurementPanel.spec.ts`
Panel access: `rightPanelPageObject.toggle()``.measurementsPanel.select()``.panel.nthMeasurement(i)``.actions.rename|delete|toggleLock|duplicate|...`. Also demonstrates `addLengthMeasurement(page)` and panel-row `click()` for jump-to.
## 5. Context menu (right-click on annotation)
**Seed:** `tests/ContextMenu.spec.ts`
Two ways to open: `activeViewport.normalizedClickAt([{...}], 'right')` on an empty area, or `activeViewport.nthAnnotation(0).contextMenu.open()` on a drawn annotation. Then `DOMOverlayPageObject.viewport.annotationContextMenu.addLabel|delete.click()`.
## 6. Labelmap segmentation (SEG) hydration
**Seed:** `tests/SEGHydration.spec.ts`, `tests/SEGHydrationThenMPR.spec.ts`
Flow: `leftPanelPageObject.loadSeriesByModality('SEG')``waitForTimeout(3000)``DOMOverlayPageObject.viewport.segmentationHydration.yes.click()`. Often pokes Cornerstone state directly via `page.evaluate(() => window.cornerstone...)` for zoom/render.
## 7. Contour segmentation (RTSTRUCT) + interactions
**Seeds:**
- Hydration: `tests/RTHydration.spec.ts`
- Rename: `tests/ContourSegmentRename.spec.ts`
- Navigation between segments: `tests/ContourSegNavigation.spec.ts`
- Duplicate: `tests/ContourSegmentDuplicate.spec.ts`
- Visibility: `tests/ContourSegmentToggleVisibility.spec.ts`
- Locking: `tests/ContourSegLocking.spec.ts`
Pattern: load RTSTRUCT series → hydrate → use `rightPanelPageObject.contourSegmentationPanel.panel.nthSegment(i)` / `.segmentByText('Small Sphere')` and their `.actions.rename|delete`, or the segment's `.click()` to jump.
## 8. Labelmap segmentation editing (brush / eraser / threshold)
**Seed:** `tests/LabelMapSegLocking.spec.ts`, `tests/SEGDrawingToolsResizing.spec.ts`
Pattern: `rightPanelPageObject.labelMapSegmentationPanel.tools.brush.setRadius(n)` / `.click()`, then `activeViewport.normalizedDragAt(...)` to paint.
## 9. TMTV / PET
**Seeds:** `tests/TMTVCSVReport.spec.ts`, `tests/TMTVSUV.spec.ts`, `tests/TMTVAlignment.spec.ts`, `tests/TMTVRendering.spec.ts`
Visit `mode: 'tmtv'` with a longer delay (`10000`). `rightPanelPageObject.tmtvPanel` for the side panel. Exporting a report uses `page.waitForEvent('download')` + `downloadAsString(download)`.
## 10. MPR and 3D layouts
**Seeds:** `tests/MPR.spec.ts`, `tests/3DOnly.spec.ts`, `tests/3DFourUp.spec.ts`, `tests/3DMain.spec.ts`, `tests/AxialPrimary.spec.ts`
Pattern: `mainToolbarPageObject.layoutSelection.<layoutName>.click()`. For 3D, wrap stabilization with `attemptAction(() => reduce3DViewportSize(page), 10, 100)` to settle the render before asserting.
## 11. Crosshairs
**Seed:** `tests/Crosshairs.spec.ts`
Pattern: `initializeMousePositionTracker(page)` in `beforeEach`, `mainToolbarPageObject.crosshairs.click()`, then `viewportPageObject.crosshairs.axial.rotate()` / `.increase()`.
## 12. Overlays — data overlay menu, window/level, orientation
**Seeds:** `tests/DataOverlayMenu.spec.ts`, `tests/WindowLevelOverlayText.spec.ts`, `tests/MultipleSegmentationDataOverlays.spec.ts`
Pattern: `viewportPageObject.getById('default').overlayMenu.dataOverlay.toggle()`, then `.addSegmentation(name)` / `.changeSegmentation(from, to)` / `.remove(name)`. For keyboard navigation, remember `press({ page, key, nTimes })` imports from `./utils/keyboardUtils`.
## 13. DICOM Tag Browser
**Seed:** `tests/DicomTagBrowser.spec.ts`
Open with `mainToolbarPageObject.moreTools.tagBrowser.click()`, then interact via `DOMOverlayPageObject.dialog.dicomTagBrowser.waitVisible()` / `.seriesSelect.selectOption(i)` / `.seriesSelect.getOptionText(i)`.
## 14. Study validation / not-found / worklist
**Seeds:** `tests/StudyValidation.spec.ts`, `tests/Worklist.spec.ts`
These are the rare specs that use `page.goto(...)` directly instead of `visitStudy()` — because they test error states or non-study pages. `notFoundStudyPageObject` gives you `errorMessage`, `returnMessage`, `studyListLink`.
## 15. SR (Structured Report) hydration
**Seeds:** `tests/SRHydration.spec.ts`, `tests/SRHydrationThenReload.spec.ts`
Same shape as SEG hydration but load via `loadSeriesByModality('SR')`.
## Feature area not listed above? (no existing seed)
Don't add a stub section here for an untested area. When your target isn't listed:
1. **Look for an indirect seed.** Grep `tests/` for the controls or flow you need
(`grep -rn "options-menu" tests/`, a related panel/dialog). An adjacent area's seed
usually still shows how the harness is driven.
2. **If genuinely uncovered, you're *creating* page objects.** Read
[page-objects.md](page-objects.md) → "When the control you need isn't covered yet", then:
- One page object per new control. Dialogs follow `DicomTagBrowserPageObject` (reached
through `DOMOverlayPageObject`); toolbar buttons get a getter on `MainToolbarPageObject`.
- Add a `data-cy` to any control that lacks one.
- **Verify the real effect, not a proxy** — drag and screenshot that the image moved via
`locator: viewportPageObject.grid`, not just that a button gained `data-active`.
**Example — user preferences / hotkeys (no seed today):** open the options menu and User
Preferences dialog (options-menu accessor on `DOMOverlayPageObject` + a `userPreferences`
dialog page object reached through it), set the hotkey, save, then trigger it and confirm the
viewport effect (activate Zoom, drag, screenshot the zoom). Add the Zoom button as a getter on
`MainToolbarPageObject`.
---
## Advanced patterns worth knowing
- **`subscribeToMeasurementAdded`** (`tests/FreehandROI.spec.ts`) — for async "was a measurement actually added?" assertions. Always `try { ... } finally { await measurementAdded.unsubscribe() }`.
- **`attemptAction`** (`tests/3DOnly.spec.ts`) — retry flaky setup (3D render, heavy layout change) without silencing real failures.
- **`addOHIFConfiguration`** (`tests/RTHydrationDisableConfirmation.spec.ts`) — pre-load config overrides before `visitStudy`.
- **`page.evaluate(() => window.services...)`** — used in several SEG/SR specs to set customizations or poke viewport state. Treat as an escape hatch, not a default.
- **`expect.toPass({ timeout })`** — wrap flaky assertions (common for jump-to-measurement tests where rendering settles asynchronously).

View File

@ -0,0 +1,100 @@
# OHIF Test Utility guide
> This file documents the **stable import rules and conventions** around `tests/utils/`. For the current list of exported helpers and their exact signatures, **read `tests/utils/index.ts` and the files it re-exports** — the barrel is always current; a static table here is not. Utilities get added, renamed, and refactored; the rules below change much more slowly.
## How to discover what's available
1. Open `tests/utils/index.ts`. Every symbol exported from the barrel is importable as `import { foo } from './utils'`.
2. If what you need isn't in the barrel, look in the rest of `tests/utils/` — there are a handful of specialized files (`keyboardUtils.ts`, `assertions.ts`, `download.ts`, …). These need the **deeper import path**; see the rule below.
3. For the actual signature, read the utility's `.ts` file. It's one short function per file in most cases.
4. To see a utility in context, grep `tests/` (`grep -rn visitStudy tests/`) — or open the seed spec for the relevant feature area ([patterns-by-feature.md](patterns-by-feature.md)). Existing specs are the most reliable signature reference because they co-evolve with the API.
Do not guess parameter shapes from memory, and do not treat this file as an API catalog — it intentionally isn't one.
---
## Stable rules
### Barrel vs. deep imports
Two import styles exist. They are not interchangeable.
```ts
// Barrel — anything re-exported from tests/utils/index.ts
import { test, expect, visitStudy, checkForScreenshot, screenShotPaths } from './utils';
// Deep — for files NOT re-exported by the barrel
import { press } from './utils/keyboardUtils';
import { assertNumberOfModalityLoadBadges } from './utils/assertions';
import { downloadAsString } from './utils/download';
```
If a symbol isn't in the barrel, `import { x } from './utils'` **compiles**, resolves `x` to `undefined`, and blows up at the first call site. Confirm by opening `tests/utils/index.ts` for your working revision. At the time of this writing, `press`, `downloadAsString`, and the `assert*` helpers live outside the barrel — but maintainers can move things in or out, so treat `index.ts` as the ground truth rather than this note.
### Never import `test` / `expect` from `@playwright/test`
```ts
// ✅ Correct — gets the fixture-extended runner
import { test, expect } from './utils';
// ❌ Wrong — compiles, but every page-object fixture is silently undefined
import { test, expect } from '@playwright/test';
```
If your test function's destructured arguments (like `viewportPageObject`) are `undefined`, this import is almost always why.
### `visitStudy` — 2000 ms is a convention, not a default
```ts
await visitStudy(page, studyInstanceUID, mode, 2000);
```
The function's own default delay is `0`. Nearly every spec passes `2000` to let the first render settle. The one consistent exception is `mode: 'tmtv'`, where the suite uniformly uses `10000` because PET fusion and SUV calculation add real wall-clock cost before the UI is interactive.
Notably, 3D layouts in `viewer` mode (3DOnly, 3DFourUp, 3DMain, 3DPrimary) and MPR also use `2000` — they're not "heavy" in the `visitStudy` sense. Their stabilization problem is solved at the interaction layer with `attemptAction(() => reduce3DViewportSize(page), 10, 100)`, not by a longer visit delay.
So: pick `10000` when the mode is `tmtv`, `2000` otherwise, and only ramp up if a specific test flakes on first-render assertions. The delay is a good first lever for "not visible" flakes, but it's not a universal upgrade.
### `checkForScreenshot` — use the object form, never screenshot the full app
**This is the direction going forward** The suite is being migrated off *full-app* screenshots — not off screenshots altogether. Screenshots are the correct and required tool whenever what you're verifying is canvas-only raster output with no DOM signal; don't avoid them there. Avoid them only where a faithful DOM/SVG signal exists (e.g. a vector overlay's color via `getSvgAttribute`) or where you'd be capturing the whole app. See SKILL.md → "Screenshot vs. DOM assertion — how to choose". Any new spec must follow the rules below, and any modification to an older spec should bring it in line when reasonable.
- **Object form** (required for all new specs): `checkForScreenshot({ page, screenshotPath, normalizedClip?, ... })`
- **Positional form**: legacy. It still appears in older specs because they haven't been migrated yet. **Do not treat existing positional-form usage as a pattern to copy** — those specs are the thing being moved away from. Do not introduce the positional form in new code.
**Hard rules for new screenshots:**
1. Use the object form.
2. Scope by passing a `locator``viewportPageObject.grid` for the whole grid, or a specific viewport pane locator. **Never screenshot the full app.** `normalizedClip` is computed *relative to the locator* (and defaults to the full page when no locator is given), so `{ x: 0, y: 0, width: 1, height: 1 }` alone does not scope anything — reserve `normalizedClip` for clipping to a sub-region of a locator. If you find yourself reaching for `fullPage: true`, stop and pass a locator instead.
Do not tune `maxDiffPixelRatio` or `threshold` to make a screenshot pass — those are intentionally rarely touched and not the right knob for flakes. If a baseline mismatches, regenerate it (`--update-snapshots`) after a human review of the diff, or fix the underlying instability. Check the current signature in `tests/utils/checkForScreenshot.ts` if something looks off.
### `screenShotPaths` — use keys, not raw strings
```ts
await checkForScreenshot({
page,
locator: viewportPageObject.grid,
screenshotPath: screenShotPaths.length.lengthDisplayedCorrectly,
});
```
The full tree of categories lives in `tests/utils/screenShotPaths.ts`. When you need a new baseline, **add the key there and reference it by name** rather than typing a raw path. A typo in a key becomes a compile error instead of a silent mismatch, and other tests become discoverable through the object.
### Object-param convention
Many OHIF test utilities take a single **object argument** rather than positional arguments — notably `press({ page, key, nTimes? })`, the `simulate*` helpers, and the `assert*` helpers. If a call looks like it should work but throws "cannot read properties of undefined," check whether you're passing positional args to something that expects `{ page, ... }`.
Read the one-line signature at the top of the utility's source file before calling it — it's faster than guessing, and it's always right.
---
## Utility shapes worth flagging
Most utilities are obvious once you read the source; these earn a mention:
- **`waitForViewportRenderCycle(page, options?)`** — preferred replacement for `page.waitForTimeout(...)` after any viewport-mutating action (hydration confirm, layout change, segmentation add, series load, etc.). Start it **before** the action, await it after — it captures the `needsRender → rendered` transition the action triggers. Use `waitForViewportsRendered(page)` (the second-half-only variant) when the render is already in flight before you can attach a watcher. Source: `tests/utils/waitForViewportsRendered.ts`. Seed: `tests/SEGHydrationFromMPR.spec.ts`. The "Wait for renders, don't sleep" section in [SKILL.md](../SKILL.md) covers the idiom in full.
- **`subscribeToMeasurementAdded(page)`** — returns `{ waitFired(timeout?), unsubscribe() }`. Use in freehand/livewire/spline specs to assert the event fired. Always wrap in `try { ... } finally { await sub.unsubscribe() }` so a failing assertion doesn't leak the listener across tests.
- **`attemptAction(action, attempts?, delay?)`** — retries a flaky async action without masking real failures. Mainly used to stabilize 3D scenes (`attemptAction(() => reduce3DViewportSize(page), 10, 100)`).
For everything else, the pattern is: find a spec that uses it (see [patterns-by-feature.md](patterns-by-feature.md)), copy the shape, adapt.

View File

@ -1,68 +0,0 @@
{
"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"
}

View File

@ -1,19 +0,0 @@
{
"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"
]
}

6
.browserslistrc Normal file
View File

@ -0,0 +1,6 @@
# Browsers that we support
> 1%
IE 11
not dead
not op_mini all

View File

@ -1,155 +1,580 @@
version: 2
version: 2.1
### 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`
###
# ci: re-trigger pipeline
orbs:
codecov: codecov/codecov@1.0.5
cypress: cypress-io/cypress@3.4.2
defaults: &defaults
working_directory: ~/repo
docker:
- image: circleci/node:10.15.1
- image: cimg/node:24.15.0
environment:
TERM: xterm
QUICK_BUILD: true
working_directory: ~/repo
commands:
install_pnpm:
steps:
- run:
name: Install pnpm
command: |
# The cimg/node global modules dir (/usr/local/lib/node_modules) is
# root-owned, so a plain `npm install -g` fails with EACCES. Install
# with sudo so the global pnpm binary lands in the shared prefix.
sudo npm install -g pnpm@11.5.2
echo 'export PATH="$(pnpm store path)/../.bin:$PATH"' >> $BASH_ENV
source $BASH_ENV
jobs:
build_and_test:
UNIT_TESTS:
<<: *defaults
resource_class: large
steps:
# Download and cache dependencies
- install_pnpm
- run: node --version
- 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/
command: pnpm install --frozen-lockfile
# RUN TESTS
- 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
command: pnpm run test:unit:ci
# platform/app
- run:
name: 'VIEWER: Combine report output'
command: |
viewerCov="/home/circleci/repo/platform/app/coverage"
touch "${viewerCov}/reports"
cat "${viewerCov}/clover.xml" >> "${viewerCov}/reports"
echo "\<<\<<\<< EOF" >> "${viewerCov}/reports"
cat "${viewerCov}/lcov.info" >>"${viewerCov}/reports"
echo "\<<\<<\<< EOF" >> "${viewerCov}/reports"
- codecov/upload:
file: '/home/circleci/repo/platform/app/coverage/reports'
flags: 'viewer'
# PLATFORM/CORE
- run:
name: 'CORE: Combine report output'
command: |
coreCov="/home/circleci/repo/platform/core/coverage"
touch "${coreCov}/reports"
cat "${coreCov}/clover.xml" >> "${coreCov}/reports"
echo "\<<\<<\<< EOF" >> "${coreCov}/reports"
cat "${coreCov}/lcov.info" >> "${coreCov}/reports"
echo "\<<\<<\<< EOF" >> "${coreCov}/reports"
- codecov/upload:
file: '/home/circleci/repo/platform/core/coverage/reports'
flags: 'core'
BUILD:
<<: *defaults
resource_class: large
steps:
# Checkout code and ALL Git Tags
- checkout
- install_pnpm
- run:
name: Install Dependencies
command: pnpm install --frozen-lockfile
# Build & Test
- run:
name: 'Perform the versioning before build'
command: node ./version.mjs
- run:
name: 'Build the OHIF Viewer'
command: pnpm run build
no_output_timeout: 45m
- run:
name: 'Upload SourceMaps, Send Deploy Notification'
command: |
# export FILE_1=$(find ./build/static/js -type f -name "2.*.js" -exec basename {} \;)
# export FILE_MAIN=$(find ./build/static/js -type f -name "main.*.js" -exec basename {} \;)
# export FILE_RUNTIME_MAIN=$(find ./build/static/js -type f -name "runtime~main.*.js" -exec basename {} \;)
# curl https://api.rollbar.com/api/1/sourcemap -F source_map=@build/static/js/$FILE_1.map -F access_token=$ROLLBAR_TOKEN -F version=$CIRCLE_SHA1 -F minified_url=https://$GOOGLE_STORAGE_BUCKET/static/js/$FILE_1
# curl https://api.rollbar.com/api/1/sourcemap -F source_map=@build/static/js/$FILE_MAIN.map -F access_token=$ROLLBAR_TOKEN -F version=$CIRCLE_SHA1 -F minified_url=https://$GOOGLE_STORAGE_BUCKET/static/js/$FILE_MAIN
# curl https://api.rollbar.com/api/1/sourcemap -F source_map=@build/static/js/$FILE_RUNTIME_MAIN.map -F access_token=$ROLLBAR_TOKEN -F version=$CIRCLE_SHA1 -F minified_url=https://$GOOGLE_STORAGE_BUCKET/static/js/$FILE_RUNTIME_MAIN
curl --request POST https://api.rollbar.com/api/1/deploy/ -F access_token=$ROLLBAR_TOKEN -F environment=$GOOGLE_STORAGE_BUCKET -F revision=$CIRCLE_SHA1 -F local_username=CircleCI
# Persist :+1:
- persist_to_workspace:
root: ~/repo
paths: .
paths:
- platform/app/dist
- Dockerfile
- version.txt
- commit.txt
- version.json
npm_publish:
BUILD_PACKAGES_QUICK:
<<: *defaults
resource_class: large
steps:
- install_pnpm
# Checkout code and ALL Git Tags
- checkout
- attach_workspace:
at: ~/repo
# SECURITY AUDIT - only when pnpm-lock.yaml has changed
- run:
name: 'Security Audit - High Risk Vulnerabilities'
command: |
git fetch origin master 2>/dev/null || true
BASE_REF=$(git merge-base HEAD origin/master 2>/dev/null)
if [[ -z "$BASE_REF" ]]; then
echo "Could not determine base ref (e.g. shallow clone or no origin/master), skipping security audit."
exit 0
fi
CHANGED_FILES=$(git diff --name-only origin/master...HEAD 2>/dev/null || echo "")
if ! echo "$CHANGED_FILES" | grep -qx 'pnpm-lock.yaml'; then
echo "pnpm-lock.yaml unchanged - skipping security audit."
exit 0
fi
echo "pnpm-lock.yaml changed - running pnpm audit for security vulnerabilities..."
echo "Checking for HIGH-RISK vulnerabilities..."
if pnpm audit --audit-level high; then
echo "No high-risk vulnerabilities found"
echo "Security audit passed!"
else
echo ""
echo "HIGH-RISK VULNERABILITIES DETECTED!"
echo "======================================"
echo ""
echo "To fix these issues:"
echo " 1. Run: pnpm audit"
echo " 2. Review the vulnerability details"
echo " 3. Update affected packages to secure versions"
echo " 4. Test your changes"
echo " 5. Re-run: pnpm audit --audit-level high"
echo ""
echo "Full audit report:"
pnpm audit || true
echo ""
echo "This build cannot proceed until high-risk vulnerabilities are resolved."
exit 1
fi
- run:
name: Install Dependencies
command: pnpm install
- run:
name: Avoid hosts unknown for github
command: |
rm -rf ~/.ssh
mkdir ~/.ssh/
echo -e "Host github.com\n\tStrictHostKeyChecking no\n" > ~/.ssh/config
git config --global user.email "danny.ri.brown+ohif-bot@gmail.com"
git config --global user.name "ohif-bot"
- run:
name: Authenticate with NPM registry
# Write the auth token to npm's per-user config (~/.npmrc), not the
# repo root. publish-package.mjs chdir's into each package dir to run
# `npm publish`, and npm only reads the project .npmrc from that dir
# plus the user .npmrc from $HOME -- it never sees ~/repo/.npmrc, so a
# root-level token yields ENEEDAUTH. Using ~/.npmrc also avoids
# clobbering the committed workspace-config .npmrc (node-linker=hoisted).
command: echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ~/.npmrc
- run:
name: build half of the packages (to avoid out of memory in circleci)
command: |
pnpm run build:package-all
- run:
name: build the other half of the packages
command: |
pnpm run build:package-all-1
NPM_PUBLISH:
<<: *defaults
resource_class: large
steps:
- install_pnpm
# Checkout code and ALL Git Tags
- checkout
- 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
name: Install Dependencies
command: pnpm install --frozen-lockfile
- run:
name: Publish using Semantic Release
command: npx semantic-release --debug
# Persist :+1:
name: Avoid hosts unknown for github
command: |
rm -rf ~/.ssh
mkdir ~/.ssh/
echo -e "Host github.com\n\tStrictHostKeyChecking no\n" > ~/.ssh/config
git config --global user.email "danny.ri.brown+ohif-bot@gmail.com"
git config --global user.name "ohif-bot"
- run:
name: Authenticate with NPM registry
# Write the auth token to npm's per-user config (~/.npmrc), not the
# repo root. publish-package.mjs chdir's into each package dir to run
# `npm publish`, and npm only reads the project .npmrc from that dir
# plus the user .npmrc from $HOME -- it never sees ~/repo/.npmrc, so a
# root-level token yields ENEEDAUTH. Using ~/.npmrc also avoids
# clobbering the committed workspace-config .npmrc (node-linker=hoisted).
command: echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ~/.npmrc
- run:
name: build half of the packages (to avoid out of memory in circleci)
command: |
pnpm run build:package-all
- run:
name: build the other half of the packages
command: |
pnpm run build:package-all-1
- run:
name: increase min time out
command: |
npm config set fetch-retry-mintimeout 20000
- run:
name: increase max time out
command: |
npm config set fetch-retry-maxtimeout 120000
- run:
name: publish package versions
command: |
node ./publish-version.mjs
- run:
name: Re-assert the NPM auth token before publishing
# Write the auth token to npm's per-user config (~/.npmrc), not the
# repo root. publish-package.mjs chdir's into each package dir to run
# `npm publish`, and npm only reads the project .npmrc from that dir
# plus the user .npmrc from $HOME -- it never sees ~/repo/.npmrc, so a
# root-level token yields ENEEDAUTH. Using ~/.npmrc also avoids
# clobbering the committed workspace-config .npmrc (node-linker=hoisted).
command: echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ~/.npmrc
- run:
name: publish package dist
command: |
node ./publish-package.mjs
- persist_to_workspace:
root: ~/repo
paths: .
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:
DOCKER_RELEASE_PUBLISH:
<<: *defaults
resource_class: large
steps:
- attach_workspace:
at: ~/repo
- setup_remote_docker:
docker_layer_caching: true
docker_layer_caching: false
- run:
name: Build and push Docker image
name: Build Docker image for amd64
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
# our command in the previous job.
if [[ ! -e version.txt ]]; then
exit 0
else
# Remove npm config
rm -f ./.npmrc
# Restore the committed .npmrc (pnpm workspace config such as
# node-linker=hoisted). NPM_PUBLISH overwrote it with a publish
# auth token, but the Dockerfile COPYs .npmrc for the in-image
# pnpm install, so it needs the config file present and token-free.
git checkout -- .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}
export IMAGE_VERSION=$(cat version.txt)
export IMAGE_VERSION_FULL=v$IMAGE_VERSION
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 .
# Build our amd64 image, auth, and push
docker build --platform linux/amd64 --tag ohif/app:$IMAGE_VERSION_FULL-amd64 --tag ohif/app:latest-amd64 .
echo $DOCKER_PWD | docker login -u $DOCKER_LOGIN --password-stdin
docker push ohif/$IMAGE_NAME:$IMAGE_VERSION_FULL
docker push ohif/$IMAGE_NAME:latest
docker push ohif/app:$IMAGE_VERSION_FULL-amd64
docker push ohif/app:latest-amd64
fi
- persist_to_workspace:
root: ~/repo
paths:
- .
DOCKER_RELEASE_PUBLISH_ARM:
<<: *defaults
resource_class: arm.large
steps:
- attach_workspace:
at: ~/repo
- setup_remote_docker:
docker_layer_caching: false
- run:
name: Build Docker image for arm64 (Release)
command: |
# This file will exist if a new version was published by
# our command in the previous job.
if [[ ! -e version.txt ]]; then
exit 0
else
# Restore the committed .npmrc (pnpm workspace config such as
# node-linker=hoisted). NPM_PUBLISH overwrote it with a publish
# auth token, but the Dockerfile COPYs .npmrc for the in-image
# pnpm install, so it needs the config file present and token-free.
git checkout -- .npmrc
# Set our version number using vars
export IMAGE_VERSION=$(cat version.txt)
export IMAGE_VERSION_FULL=v$IMAGE_VERSION
echo $IMAGE_VERSION
echo $IMAGE_VERSION_FULL
# Build our arm64 image, auth, and push
docker build --platform linux/arm64 --tag ohif/app:$IMAGE_VERSION_FULL-arm64 --tag ohif/app:latest-arm64 .
echo $DOCKER_PWD | docker login -u $DOCKER_LOGIN --password-stdin
docker push ohif/app:$IMAGE_VERSION_FULL-arm64
docker push ohif/app:latest-arm64
fi
- persist_to_workspace:
root: ~/repo
paths:
- .
DOCKER_BETA_PUBLISH:
<<: *defaults
resource_class: large
steps:
- attach_workspace:
at: ~/repo
- setup_remote_docker:
docker_layer_caching: false
- run:
name: Build Docker image for amd64 (Beta)
command: |
echo $(ls -l)
# This file will exist if a new version was published by
# our command in the previous job.
if [[ ! -e version.txt ]]; then
echo "don't have version txt"
exit 0
else
echo "Building and pushing Docker image from the master branch (beta releases)"
# Restore the committed .npmrc (pnpm workspace config such as
# node-linker=hoisted). NPM_PUBLISH overwrote it with a publish
# auth token, but the Dockerfile COPYs .npmrc for the in-image
# pnpm install, so it needs the config file present and token-free.
git checkout -- .npmrc
# Set our version number using vars
export IMAGE_VERSION=$(cat version.txt)
export IMAGE_VERSION_FULL=v$IMAGE_VERSION
echo $IMAGE_VERSION
echo $IMAGE_VERSION_FULL
# Build our amd64 image, auth, and push
docker build --platform linux/amd64 --tag ohif/app:$IMAGE_VERSION_FULL-amd64 --tag ohif/app:latest-beta-amd64 .
echo $DOCKER_PWD | docker login -u $DOCKER_LOGIN --password-stdin
docker push ohif/app:$IMAGE_VERSION_FULL-amd64
docker push ohif/app:latest-beta-amd64
fi
DOCKER_BETA_PUBLISH_ARM:
<<: *defaults
resource_class: arm.large
steps:
- attach_workspace:
at: ~/repo
- setup_remote_docker:
docker_layer_caching: false
- run:
name: Build Docker image for arm64 (Beta)
command: |
echo $(ls -l)
# This file will exist if a new version was published by
# our command in the previous job.
if [[ ! -e version.txt ]]; then
echo "don't have version txt"
exit 0
else
echo "Building and pushing ARM64 Docker image from the master branch (beta releases)"
# Restore the committed .npmrc (pnpm workspace config such as
# node-linker=hoisted). NPM_PUBLISH overwrote it with a publish
# auth token, but the Dockerfile COPYs .npmrc for the in-image
# pnpm install, so it needs the config file present and token-free.
git checkout -- .npmrc
# Set our version number using vars
export IMAGE_VERSION=$(cat version.txt)
export IMAGE_VERSION_FULL=v$IMAGE_VERSION
echo $IMAGE_VERSION
echo $IMAGE_VERSION_FULL
# Build our arm64 image, auth, and push
docker build --platform linux/arm64 --tag ohif/app:$IMAGE_VERSION_FULL-arm64 --tag ohif/app:latest-beta-arm64 .
echo $DOCKER_PWD | docker login -u $DOCKER_LOGIN --password-stdin
docker push ohif/app:$IMAGE_VERSION_FULL-arm64
docker push ohif/app:latest-beta-arm64
fi
CYPRESS:
<<: *defaults
resource_class: large
parallelism: 8
steps:
- install_pnpm
- run:
name: Install System Dependencies
command: |
# CircleCI's base image registers third-party apt sources (git-lfs via
# packagecloud, git-core PPA via launchpad) that periodically hang
# `apt-get update`. The Cypress libs below all come from the Ubuntu
# archive, so drop those sources and bound the update with timeouts +
# retries so a slow mirror can't stall the job indefinitely.
sudo rm -f /etc/apt/sources.list.d/*git* || true
sudo apt-get update \
-o Acquire::Retries=3 \
-o Acquire::http::Timeout=20 \
-o Acquire::https::Timeout=20
sudo apt-get install -y xvfb libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libnss3 libxss1 libasound2t64 libxtst6
- run:
name: Start Xvfb
command: Xvfb :99 -screen 0 1920x1080x24 &
background: true
- run:
name: Export Display Variable
command: export DISPLAY=:99
- cypress/install:
install-command: pnpm install
- cypress/run-tests:
# CI runs headless under Xvfb with no GPU, so Electron uses software
# WebGL. Newer Chromium deprecated that implicit fallback (canvas
# rendering degrades and races with element clicks). ELECTRON_EXTRA_LAUNCH_ARGS
# is the reliable way to pass the opt-in flag to Cypress's Electron browser.
cypress-command: |
npx wait-on@latest http://localhost:3000 && cd platform/app && ELECTRON_EXTRA_LAUNCH_ARGS="--enable-unsafe-swiftshader" npx cypress run --record --parallel
start-command: pnpm run test:data && pnpm run test:e2e:serve
DOCKER_MULTIARCH_MANIFEST:
<<: *defaults
resource_class: large
steps:
- attach_workspace:
at: ~/repo
- setup_remote_docker:
docker_layer_caching: false
- run:
name: Create and push multi-architecture manifest (Release)
command: |
# This file will exist if a new version was published by
# our command in the previous job.
if [[ ! -e version.txt ]]; then
exit 0
else
echo "Building and pushing multi-architecture manifest from the master branch (release releases)"
rm -f ./.npmrc
# Set our version number using vars
export IMAGE_VERSION=$(cat version.txt)
export IMAGE_VERSION_FULL=v$IMAGE_VERSION
echo $IMAGE_VERSION
echo $IMAGE_VERSION_FULL
echo $DOCKER_PWD | docker login -u $DOCKER_LOGIN --password-stdin
# Create and push manifest for specific version
docker manifest create ohif/app:$IMAGE_VERSION_FULL \
--amend ohif/app:$IMAGE_VERSION_FULL-amd64 \
--amend ohif/app:$IMAGE_VERSION_FULL-arm64
docker manifest push ohif/app:$IMAGE_VERSION_FULL
# Create and push manifest for "latest" tag
docker manifest create ohif/app:latest \
--amend ohif/app:latest-amd64 \
--amend ohif/app:latest-arm64
docker manifest push ohif/app:latest
fi
DOCKER_BETA_MULTIARCH_MANIFEST:
<<: *defaults
resource_class: large
steps:
- attach_workspace:
at: ~/repo
- setup_remote_docker:
docker_layer_caching: false
- run:
name: Create and push multi-architecture manifest (Beta)
command: |
echo $(ls -l)
# This file will exist if a new version was published by
# our command in the previous job.
if [[ ! -e version.txt ]]; then
exit 0
else
echo "Building and pushing multi-architecture manifest from the master branch (beta releases)"
rm -f ./.npmrc
# Set our version number using vars
export IMAGE_VERSION=$(cat version.txt)
export IMAGE_VERSION_FULL=v$IMAGE_VERSION
echo $IMAGE_VERSION
echo $IMAGE_VERSION_FULL
echo $DOCKER_PWD | docker login -u $DOCKER_LOGIN --password-stdin
# Create and push manifest for specific beta version
docker manifest create ohif/app:$IMAGE_VERSION_FULL \
--amend ohif/app:$IMAGE_VERSION_FULL-amd64 \
--amend ohif/app:$IMAGE_VERSION_FULL-arm64
docker manifest push ohif/app:$IMAGE_VERSION_FULL
# Create and push manifest for "latest-beta" tag
docker manifest create ohif/app:latest-beta \
--amend ohif/app:latest-beta-amd64 \
--amend ohif/app:latest-beta-arm64
docker manifest push ohif/app:latest-beta
fi
workflows:
version: 2
# PULL REQUESTS
pull_requests:
PR_CHECKS:
jobs:
- build_and_test:
- BUILD_PACKAGES_QUICK:
filters:
branches:
ignore:
- master
- feature/*
- hotfix/*
ignore: master
- UNIT_TESTS
- CYPRESS:
name: 'Cypress Tests'
context: cypress
# MERGE TO MASTER
cut_release:
# viewer-dev.ohif.org
DEPLOY_MASTER:
jobs:
- build_and_test:
- BUILD:
filters:
branches:
only: master
- npm_publish:
# - HOLD_FOR_APPROVAL:
# type: approval
# requires:
# - BUILD
- NPM_PUBLISH:
requires:
- build_and_test
- docs_publish:
# - HOLD_FOR_APPROVAL
- BUILD
- DOCKER_BETA_PUBLISH:
requires:
- build_and_test
- docker_publish:
- NPM_PUBLISH
- DOCKER_BETA_PUBLISH_ARM:
requires:
- build_and_test
- npm_publish
- DOCKER_BETA_PUBLISH
- DOCKER_BETA_MULTIARCH_MANIFEST:
requires:
- DOCKER_BETA_PUBLISH_ARM
# viewer.ohif.org
DEPLOY_RELEASE:
jobs:
- BUILD:
filters:
branches:
only: /^release\/.*/
- HOLD_FOR_APPROVAL:
type: approval
requires:
- BUILD
- NPM_PUBLISH:
requires:
- HOLD_FOR_APPROVAL
- DOCKER_RELEASE_PUBLISH:
requires:
- NPM_PUBLISH
- DOCKER_RELEASE_PUBLISH_ARM:
requires:
- DOCKER_RELEASE_PUBLISH
- DOCKER_MULTIARCH_MANIFEST:
requires:
- DOCKER_RELEASE_PUBLISH_ARM

6
.codespellrc Normal file
View File

@ -0,0 +1,6 @@
[codespell]
skip = .git,*.pdf,*.svg,yarn.lock,*.min.js,locales
# ignore words ending with … and some camelcased variables and names
ignore-regex = \b\S+…\S*|\b(doubleClick|afterAll|PostgresSQL)\b|\bWee, L\.|.*te.*Telugu.*
# some odd variables
ignore-words-list = datea,ser,childrens

43
.docker/README.md Normal file
View File

@ -0,0 +1,43 @@
# Docker compose files
This folder contains docker-compose files used to spin up OHIF-Viewer with
different options such as locally or with any PAS you desire to
## Public Server
## Local Orthanc
### Build
`$ docker-compose -f docker-compose-orthanc.yml build`
### Run
Starts containers and leaves them running in the background.
`$ docker-compose -f docker-compose-orthanc.yml up -d`
then, access the application at [http://localhost](http://localhost)
**remember that you have to access orthanc application and include your studies
there**
## Local Dcm4chee
#### build
`$ docker-compose -f docker-compose-dcm4chee.yml build`
#### run
`$ docker-compose -f docker-compose-dcm4chee.yml up -d`
then, access the application at [http://localhost](http://localhost)
**remember that you have to access dcm4chee application and include your studies
there** You can use the following command to import your studies into dcm4che
`$ docker run -v {YOUR_STUDY_FOLDER}:/tmp --rm --network=docker_dcm4che_default dcm4che/dcm4che-tools:5.14.0 storescu -cDCM4CHEE@arc:11112 /tmp`
**make sure that your Docker network name is docker_dcm4chee_default or change
it to the right one**

View File

@ -0,0 +1,21 @@
server {
gzip_static always;
gzip_proxied expired no-cache no-store private auth;
gunzip on;
listen ${PORT} default_server;
listen [::]:${PORT} default_server;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ ${PUBLIC_URL}index.html;
add_header Cross-Origin-Resource-Policy same-origin;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

View File

@ -0,0 +1,20 @@
server {
listen ${SSL_PORT} ssl http2 default_server;
listen [::]:${SSL_PORT} ssl http2 default_server;
ssl_certificate /etc/ssl/certs/ssl-certificate.crt;
ssl_certificate_key /etc/ssl/private/ssl-private-key.key;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
add_header Cross-Origin-Resource-Policy same-origin;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

View File

@ -0,0 +1,63 @@
#!/bin/sh
if [ -n "$SSL_PORT" ]
then
envsubst '${SSL_PORT}:${PORT}' < /usr/src/default.ssl.conf.template | envsubst '${PUBLIC_URL}' > /etc/nginx/conf.d/default.conf
else
envsubst '${PORT}:${PUBLIC_URL}' < /usr/src/default.conf.template > /etc/nginx/conf.d/default.conf
fi
if [ -n "$APP_CONFIG" ]; then
echo "$APP_CONFIG" > /usr/share/nginx/html${PUBLIC_URL}app-config.js
echo "Using custom APP_CONFIG environment variable"
else
echo "Not using custom APP_CONFIG"
fi
if [ -f /usr/share/nginx/html${PUBLIC_URL}app-config.js ]; then
if [ -s /usr/share/nginx/html${PUBLIC_URL}app-config.js ]; then
echo "Detected non-empty app-config.js. Ensuring .gz file is updated..."
rm -f /usr/share/nginx/html${PUBLIC_URL}app-config.js.gz
gzip /usr/share/nginx/html${PUBLIC_URL}app-config.js
touch /usr/share/nginx/html${PUBLIC_URL}app-config.js
echo "Compressed app-config.js to app-config.js.gz"
else
echo "app-config.js is empty. Skipping compression."
fi
else
echo "No app-config.js file found. Skipping compression."
fi
if [ -n "$CLIENT_ID" ] || [ -n "$HEALTHCARE_API_ENDPOINT" ]
then
# If CLIENT_ID is specified, use the google.js configuration with the modified ID
if [ -n "$CLIENT_ID" ]
then
echo "Google Cloud Healthcare \$CLIENT_ID has been provided: "
echo "$CLIENT_ID"
echo "Updating config..."
# - Use SED to replace the CLIENT_ID that is currently in google.js
sed -i -e "s/YOURCLIENTID.apps.googleusercontent.com/$CLIENT_ID/g" /usr/share/nginx/html/google.js
fi
# If HEALTHCARE_API_ENDPOINT is specified, use the google.js configuration with the modified endpoint
if [ -n "$HEALTHCARE_API_ENDPOINT" ]
then
echo "Google Cloud Healthcare \$HEALTHCARE_API_ENDPOINT has been provided: "
echo "$HEALTHCARE_API_ENDPOINT"
echo "Updating config..."
# - Use SED to replace the HEALTHCARE_API_ENDPOINT that is currently in google.js
sed -i -e "s+https://healthcare.googleapis.com/v1+$HEALTHCARE_API_ENDPOINT+g" /usr/share/nginx/html/google.js
fi
# - Copy google.js to overwrite app-config.js
cp /usr/share/nginx/html/google.js /usr/share/nginx/html/app-config.js
fi
echo "Starting Nginx to serve the OHIF Viewer on ${PUBLIC_URL}"
exec "$@"

4
.docker/compressDist.sh Normal file
View File

@ -0,0 +1,4 @@
find platform/app/dist -name "*.js" -exec gzip -9 "{}" \; -exec touch "{}" \;
find platform/app/dist -name "*.map" -exec gzip -9 "{}" \; -exec touch "{}" \;
find platform/app/dist -name "*.css" -exec gzip -9 "{}" \; -exec touch "{}" \;
find platform/app/dist -name "*.svg" -exec gzip -9 "{}" \; -exec touch "{}" \;

View File

@ -1,12 +1,23 @@
# Reduces size of context and hides
# files from Docker (can't COPY or ADD these)
# Note that typically the Docker context for various OHIF containers is the
# directory of this file (i.e. the root of the source). As such, this is
# the .dockerignore file for ALL Docker containers that are built. For example,
# the Docker containers built from the recipes in ./platform/app/.recipes will
# have this file as their .dockerignore.
# Output
dist/
**/dist/
**/build/
# Dependencies
node_modules/
**/node_modules/
# Root
README.md
Dockerfile
dockerfile
# Misc. Config
.git
@ -14,3 +25,13 @@ Dockerfile
.gitignore
.vscode
.circleci
# Unnecessary things to pull into container
.circleci/
.github/
.netlify/
.scripts/
.vscode/
coverage/
platform/docs/
testdata/

14
.env
View File

@ -1,14 +0,0 @@
##
# 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

View File

@ -1,13 +0,0 @@
##
# 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

View File

@ -1,3 +1,4 @@
config/**
docs/**
img/**
node_modules

View File

@ -1,16 +0,0 @@
{
"extends": [
"react-app",
"eslint:recommended",
"plugin:react/recommended"
],
"parser": "babel-eslint",
"env": {
"jest": true
},
"settings": {
"react": {
"version": "detect",
},
},
}

31
.eslintrc.json Normal file
View File

@ -0,0 +1,31 @@
{
"plugins": ["@typescript-eslint", "import", "eslint-plugin-tsdoc", "prettier"],
"extends": [
"react-app",
"eslint:recommended",
"plugin:react/recommended",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended"
],
"parser": "@typescript-eslint/parser",
"env": {
"jest": true
},
"settings": {
"react": {
"version": "detect"
}
},
"rules": {
// Enforce consistent brace style for all control statements for readability
"curly": "error",
"import/no-anonymous-default-export": "off"
},
"globals": {
"cy": true,
"before": true,
"context": true,
"Cypress": true,
"assert": true
}
}

5
.gitattributes vendored Normal file
View File

@ -0,0 +1,5 @@
# Set the default behavior,
# in case people don't have core.autocrlf set.
* text=auto
# Declares that files will always have CRLF line ends
*.sh text eol=lf

13
.github/.dependabot.yaml vendored Normal file
View File

@ -0,0 +1,13 @@
version: 2
enable-beta-ecosystems: true
updates:
- package-ecosystem: 'npm'
# Disable all pull requests for npm/pnpm version updates.
open-pull-requests-limit: 0
directory: '/'
schedule:
interval: 'daily'
labels: ['dependencies']
commit-message:
prefix: 'chore'
include: 'scope'

1
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1 @@
custom: https://giving.massgeneral.org/ohif

85
.github/ISSUE_TEMPLATE/bug-report.yml vendored Normal file
View File

@ -0,0 +1,85 @@
name: 'Bug report'
description: Create a report to help us improve
title: '[Bug] '
labels: ['Community: Report :bug:', 'Awaiting Reproduction']
body:
- type: markdown
attributes:
value: |
👋 Hello, and thank you for contributing to our project! Your support is greatly appreciated.
🔍 Before proceeding, please make sure to read our [Rules of Conduct](https://github.com/OHIF/Viewers/blob/master/CODE_OF_CONDUCT.md) and familiarize yourself with our [development process](https:/docs.ohif.org/development/our-process).
❓ If you're here to seek general support or ask a question, we encourage you to visit our [community discussion board](https://community.ohif.org/)
🐞 For bug reports, please complete the following template in as much detail as possible. This will help us reproduce and address the issue efficiently.
🧪 Finally, ensure that you're using the latest version of the software and check if your issue has already been reported to avoid duplicates.
- type: textarea
id: bug_description
attributes:
label: Describe the Bug
description: 'A clear and concise description of what the bug is.'
validations:
required: true
- type: textarea
id: reproduction_steps
attributes:
label: Steps to Reproduce
description: 'Please describe the steps to reproduce the issue.'
placeholder: "1. First step\n2. Second step\n3. ..."
validations:
required: true
- type: textarea
id: current_behavior
attributes:
label: The current behavior
description:
'A clear and concise description of what happens instead of the expected behavior.'
validations:
required: true
- type: textarea
id: expected_behavior
attributes:
label: The expected behavior
description: 'A clear and concise description of what you expected to happen.'
validations:
required: true
- type: textarea
id: system_info
attributes:
label: 'System Information'
description: 'Please run the following command in your terminal and paste the output:'
placeholder: |
Run: npx envinfo --system --binaries --browsers
Then paste the output here. It should look something like:
System:
OS: Windows 10 10.0.19042
CPU: (8) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Memory: 15.89 GB / 31.74 GB
Shell: 1.0.0 - C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe
Binaries:
Node: 20.18.1 - C:\Program Files\nodejs\node.EXE
Yarn: 1.22.22 - C:\Users\user\AppData\Roaming\npm\yarn.CMD
npm: 10.8.2 - C:\Program Files\nodejs\npm.CMD
Browsers:
Chrome: 83.0.4103.116
Edge: Spartan (44.19041.1266.0), Chromium (83.0.478.58)
Firefox: 77.0.1
validations:
required: true
- type: markdown
attributes:
value: >
> :warning: Reports we cannot reproduce are at risk of being marked stale and > closed. The
more information you can provide, the more likely we are to look > into and address your
issue.

5
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: 🤗 Support Question
url: https://community.ohif.org/
about: Please use our forum if you have questions or need help.

View File

@ -0,0 +1,34 @@
name: Feature request
description: Create a feature request
labels: ['Community: Request :hand:']
title: '[Feature Request] '
body:
- type: markdown
attributes:
value: |
👋 Hello and thank you for your interest in our project!
🔍 Before you proceed, please read our [Rules of Conduct](https://github.com/OHIF/Viewers/blob/master/CODE_OF_CONDUCT.md).
🚀 If your request is specific to your needs, consider contributing it yourself! Read our [contributing guides](https://docs.ohif.org/development/contributing) to get started.
🖊️ Please provide as much detail as possible for your feature request. Mock-up screenshots, workflow or logic flow diagrams are very helpful. Discuss how your requested feature would interact with existing features.
⏱️ Lastly, tell us why we should prioritize your feature. What impact would it have?
- type: textarea
attributes:
label: 'What feature or change would you like to see made?'
description:
'Please include as much detail as possible including possibly mock up screen shots, workflow
or logic flow diagrams etc.'
placeholder: '...'
validations:
required: true
- type: textarea
attributes:
label: 'Why should we prioritize this feature?'
description: 'Discuss if and how the requested feature interacts with existing features.'
placeholder: '...'
validations:
required: true

93
.github/pull_request_template.md vendored Normal file
View File

@ -0,0 +1,93 @@
<!-- Do Not Delete This! pr_template -->
<!-- Please read our Rules of Conduct: https://github.com/OHIF/Viewers/blob/master/CODE_OF_CONDUCT.md -->
<!-- 🕮 Read our guide about our Contributing Guide here https://docs.ohif.org/development/contributing -->
<!-- :hand: Thank you for starting this amazing contribution! -->
<!--
⚠️⚠️ Please make sure the checklist section below is complete before submitting your PR.
To complete the checklist, add an 'x' to each item: [] -> [x]
(PRs that do not have all the checkboxes marked will not be approved)
-->
### Context
<!--
Provide a clear explanation of the reasoning behind this change, such as:
- A link to the issue being addressed, using the format "Fixes #ISSUE_NUMBER"
- An image showing the issue or problem being addressed (if not already in the issue)
- Error logs or callStacks to help with the understanding of the problem (if not already in the issue)
-->
### Changes & Results
<!--
List all the changes that have been done, such as:
- Add new components
- Remove old components
- Update dependencies
What are the effects of this change?
- Before vs After
- Screenshots / GIFs / Videos
-->
### Testing
<!--
Describe how we can test your changes.
- open a URL
- visit a page
- click on a button
- etc.
-->
### Checklist
#### PR
<!--
https://semantic-release.gitbook.io/semantic-release/#how-does-it-work
Examples:
Please note the letter casing in the provided examples (upper or lower).
- feat(MeasurementService): add ...
- fix(Toolbar): fix ...
- docs(Readme): update ...
- style(Whitespace): fix ...
- refactor(ExtensionManager): ...
- test(HangingProtocol): Add test ...
- chore(git): update ...
- perf(VolumeLoader): ...
You don't need to have each commit within the Pull Request follow the rule,
but the PR title must comply with it, as it will be used as the commit message
after the commits are squashed.
-->
- [] My Pull Request title is descriptive, accurate and follows the
semantic-release format and guidelines.
#### Code
- [] My code has been well-documented (function documentation, inline comments,
etc.)
#### Public Documentation Updates
<!-- https://docs.ohif.org/ -->
- [] The documentation page has been updated as necessary for any public API
additions or removals.
#### Tested Environment
- [] OS: <!--[e.g. Windows 10, macOS 10.15.4]-->
- [] Node version: <!--[e.g. 18.16.1]-->
- [] Browser:
<!--[e.g. Chrome 83.0.4103.116, Firefox 77.0.1, Safari 13.1.1]-->
<!-- prettier-ignore-start -->
[blog]: https://circleci.com/blog/triggering-trusted-ci-jobs-on-untrusted-forks/
[script]: https://github.com/jklukas/git-push-fork-to-upstream-branch
<!-- prettier-ignore-end -->

25
.github/stale.yml vendored Normal file
View File

@ -0,0 +1,25 @@
# GitHub App: Stale
# https://github.com/apps/stale
#
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 180
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 60
# Issues with these labels will never be considered stale
exemptLabels:
- 'Bug: Verified :bug:'
- 'PR: Awaiting Review 👀'
- 'Announcement 🎉'
- 'IDC:priority'
- 'IDC:candidate'
- 'IDC:collaboration'
- 'Community: Request :hand:'
- 'Community: Report :bug:'
# Label to use when marking an issue as stale
staleLabel: 'Stale :baguette_bread:'
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had recent activity. It will
be closed if no further activity occurs. Thank you for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false

125
.github/workflows/build-docs.yml vendored Normal file
View File

@ -0,0 +1,125 @@
name: Build and Deploy Docs
on:
push:
branches: [master]
env:
ACTIONS_STEP_DEBUG: true
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build-and-deploy-docs:
timeout-minutes: 60
runs-on: ubuntu-latest
# Need permissions to read actions and pull requests
permissions:
actions: read
contents: read
pull-requests: read
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false
- uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 24.15.0
cache: pnpm
- name: Configure git for private repos
run: git config --global url."https://${GITHUB_TOKEN}:x-oauth-basic@github.com/".insteadOf ssh://git@github.com/
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install dependencies
# Internal @ohif/* deps are workspace:* in the committed manifests and the
# lockfile records them as links, so pnpm-lock.yaml stays in sync across
# version bumps and a frozen install passes. Frozen is the right choice
# for a deploy job: it fails fast if a PR ever changed a real dependency
# without committing the lockfile update, instead of silently reconciling.
# (Exact versions appear only in published tarballs, where pnpm publish
# rewrites workspace:* at pack time -- not publish-version.mjs.)
run: pnpm install --frozen-lockfile
# Removed Playwright tests and coverage generation steps
- name: Find PR and associated workflow run
id: find_pr_run
env:
GH_TOKEN: ${{ github.token }}
MERGE_COMMIT_SHA: ${{ github.sha }}
run: |
# Find the PR associated with the merge commit SHA
# Note: This relies on the merge commit being directly pushed to main
PR_DATA=$(gh pr list --state merged --search "$MERGE_COMMIT_SHA" --json number,headRefOid --jq '.[0]')
if [ -z "$PR_DATA" ]; then
echo "::warning::Could not find merged PR for commit $MERGE_COMMIT_SHA. Skipping coverage embedding."
echo "coverage_found=false" >> $GITHUB_OUTPUT
exit 0
fi
PR_HEAD_SHA=$(echo "$PR_DATA" | jq -r '.headRefOid')
PR_NUMBER=$(echo "$PR_DATA" | jq -r '.number')
echo "Found PR Number: $PR_NUMBER"
echo "Found PR Head SHA: $PR_HEAD_SHA"
# Find the latest *successful* playwright.yml run for the PR head commit so we
# never embed coverage from a failed/incomplete run.
RUN_ID=$(gh run list --workflow playwright.yml --commit "$PR_HEAD_SHA" --event pull_request --status success --json databaseId --jq '.[0].databaseId')
if [ -z "$RUN_ID" ]; then
echo "::warning::Could not find a successful 'playwright.yml' run for PR $PR_NUMBER (Head SHA: $PR_HEAD_SHA). Skipping coverage embedding."
echo "coverage_found=false" >> $GITHUB_OUTPUT
exit 0
fi
echo "Found Run ID: $RUN_ID"
echo "run_id=$RUN_ID" >> $GITHUB_OUTPUT
echo "coverage_found=true" >> $GITHUB_OUTPUT
- name: Download coverage artifact from PR run
if: steps.find_pr_run.outputs.coverage_found == 'true'
env:
GH_TOKEN: ${{ github.token }}
run: |
mkdir -p ./coverage-artifact
gh run download ${{ steps.find_pr_run.outputs.run_id }} -n coverage-report-pr --dir ./coverage-artifact
# Verify the artifact contains an HTML coverage report rather than checking a single asset
if [ -z "$(ls -A ./coverage-artifact)" ] || ! ls ./coverage-artifact/*.html >/dev/null 2>&1; then
echo "Failed to download or find an HTML coverage report in artifact 'coverage-report-pr' from run ${{ steps.find_pr_run.outputs.run_id }}."
exit 1
fi
echo "Artifact downloaded successfully."
- name: Copy coverage to docs static directory
if: steps.find_pr_run.outputs.coverage_found == 'true'
run: |
# Copy files from the downloaded artifact directory
mkdir -p platform/docs/static/coverage
cp -r ./coverage-artifact/* platform/docs/static/coverage/
# Copy specific asset files from the downloaded artifact root to static root
cp ./coverage-artifact/base.css platform/docs/static/
cp ./coverage-artifact/block-navigation.js platform/docs/static/
cp ./coverage-artifact/prettify.css platform/docs/static/
cp ./coverage-artifact/prettify.js platform/docs/static/
cp ./coverage-artifact/favicon.png platform/docs/static/
cp ./coverage-artifact/sort-arrow-sprite.png platform/docs/static/
cp ./coverage-artifact/sorter.js platform/docs/static/
- name: Build docs
run: pnpm --filter ohif-docs run build
- name: Deploy to Netlify
# The docs are already built by the "Build docs" step above, so pass
# --no-build: `netlify deploy` runs the build command by default, which
# would otherwise pick up the repo-root netlify.toml (configured for the
# main viewer app) and build the wrong project. --dir is resolved
# relative to the repo root (the netlify.toml base), not the cwd, so it
# must be the full path to the prebuilt docs output. --filter selects
# the ohif-docs package so Netlify CLI does not abort on monorepo detection.
run: npx netlify-cli deploy --filter ohif-docs --dir=platform/docs/build --prod --no-build
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}

100
.github/workflows/codeql.yml vendored Normal file
View File

@ -0,0 +1,100 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL Advanced"
on:
pull_request:
branches: [ "main" ]
schedule:
- cron: '15 1 * * 5'
jobs:
analyze:
name: Analyze (${{ matrix.language }})
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners (GitHub.com only)
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
permissions:
# required for all workflows
security-events: write
# required to fetch internal or private CodeQL packs
packages: read
# only required for workflows in private repositories
actions: read
contents: read
strategy:
fail-fast: false
matrix:
include:
- language: actions
build-mode: none
- language: javascript-typescript
build-mode: none
# CodeQL supports the following values keywords for 'language': 'actions', 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
# Use `c-cpp` to analyze code written in C, C++ or both
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name: Checkout repository
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false
# Add any setup steps before running the `github/codeql-action/init` action.
# This includes steps like installing compilers or runtimes (`actions/setup-node`
# or others). This is typically only required for manual builds.
# - name: Setup runtime (example)
# uses: actions/setup-example@v1
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@dd903d2e4f5405488e5ef1422510ee31c8b32357 # v3.36.2
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# If the analyze step fails for one of the languages you are analyzing with
# "We were unable to automatically build your code", modify the matrix above
# to set the build mode to "manual" for that language. Then modify this step
# to build your code.
# Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- if: matrix.build-mode == 'manual'
shell: bash
run: |
echo 'If you are using a "manual" build mode for one or more of the' \
'languages you are analyzing, replace this with the commands to build' \
'your code, for example:'
echo ' make bootstrap'
echo ' make release'
exit 1
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@dd903d2e4f5405488e5ef1422510ee31c8b32357 # v3.36.2
with:
category: "/language:${{matrix.language}}"

232
.github/workflows/playwright.yml vendored Normal file
View File

@ -0,0 +1,232 @@
name: Playwright Tests
on:
pull_request:
branches: [master, release/*]
workflow_dispatch:
inputs:
cs3d_ref:
description: >-
CS3D branch (e.g. main, origin:feat/foo) or version (e.g. 4.18.2, 4.19+, 4.x). Only used
when ohif-integration label is present or via workflow_dispatch.
required: false
default: '4.19+'
permissions:
contents: read
pull-requests: read
issues: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
playwright-tests:
timeout-minutes: 120
environment: fork-pr-approval
runs-on: [self-hosted, nashua]
strategy:
fail-fast: false
matrix:
node-version: [24.15.0]
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: ${{ matrix.node-version }}
# No `cache: pnpm`: this is a self-hosted runner with a persistent
# pnpm store on local disk. The Actions cache doesn't preserve the
# pnpm self-install's links faithfully, dropping pnpm/dist/worker.js
# and breaking `pnpm install` with MODULE_NOT_FOUND.
# Install pnpm via Corepack instead of pnpm/action-setup. The action's
# self-installer is a JS action run under the runner's bundled
# externals/node{version} and derives the `npm` path from that runtime — which
# on this self-hosted runner is corrupted (Cannot find module
# '../lib/cli.js'), so it dies regardless of `standalone:true`. Corepack
# ships inside the Node that setup-node just installed, reads the pinned
# `packageManager` (pnpm@11.5.2) from package.json, and fetches pnpm via
# Node's own https — it never invokes the npm CLI.
- name: Enable Corepack (pnpm)
shell: bash
run: |
corepack enable
corepack prepare --activate
# ── CS3D integration: detect label and ref type ──────────────────────
- name: Check for CS3D integration label
id: cs3d-check
run: bash .scripts/ci/cs3d-check-integration.sh
env:
GH_TOKEN: ${{ github.token }}
EVENT_NAME: ${{ github.event_name }}
CS3D_REF_INPUT: ${{ github.event.inputs.cs3d_ref || '4.19+' }}
REPO: ${{ github.repository }}
PR_NUMBER: ${{ github.event.pull_request.number }}
- name: Detect CS3D ref type
id: cs3d-ref
if: steps.cs3d-check.outputs.enabled == 'true'
run: |
REF="${CS3D_REF}"
if [[ "$REF" =~ ^[0-9]+\.[0-9x]+\+?(\.[0-9x]+)?(-[a-zA-Z0-9._]+)?$ ]]; then
echo "type=version" >> "$GITHUB_OUTPUT"
RESOLVED=$(node .scripts/cs3d-resolve-version.mjs "$REF")
echo "version=$RESOLVED" >> "$GITHUB_OUTPUT"
echo "::notice::CS3D version: $REF -> $RESOLVED"
else
echo "type=branch" >> "$GITHUB_OUTPUT"
echo "::notice::CS3D branch: $REF"
fi
env:
CS3D_REF: ${{ steps.cs3d-check.outputs.cs3d_ref }}
# ── CS3D branch path: clone and build before OHIF install ───────────
- name: Clone CS3D
if: steps.cs3d-check.outputs.enabled == 'true' && steps.cs3d-ref.outputs.type == 'branch'
run: |
REF="${CS3D_REF}"
if [[ "$REF" == *:* ]]; then
REPO="https://github.com/${REF%%:*}/cornerstone3D.git"
BRANCH="${REF#*:}"
else
REPO="https://github.com/cornerstonejs/cornerstone3D.git"
BRANCH="$REF"
fi
echo "::notice::Cloning CS3D from $REPO branch $BRANCH"
git clone --depth 1 --branch "$BRANCH" "$REPO" libs/@cornerstonejs
env:
CS3D_REF: ${{ steps.cs3d-check.outputs.cs3d_ref }}
- name: Install & Build CS3D
if: steps.cs3d-check.outputs.enabled == 'true' && steps.cs3d-ref.outputs.type == 'branch'
working-directory: libs/@cornerstonejs
run: pnpm install --frozen-lockfile && pnpm run build:esm
# ── Common: install OHIF dependencies ───────────────────────────────
- name: Install dependencies
run: pnpm install --frozen-lockfile
# ── CS3D branch path: link packages after OHIF install ──────────────
- name: Link CS3D packages
if: steps.cs3d-check.outputs.enabled == 'true' && steps.cs3d-ref.outputs.type == 'branch'
working-directory: libs/@cornerstonejs
run: node scripts/link-ohif-cornerstone-node-modules.mjs "$GITHUB_WORKSPACE"
# ── CS3D version path: update versions after OHIF install ───────────
- name: Set CS3D version
if: steps.cs3d-check.outputs.enabled == 'true' && steps.cs3d-ref.outputs.type == 'version'
run: |
node .scripts/cs3d-set-version.mjs "${CS3D_VERSION}"
pnpm install --no-frozen-lockfile
env:
CS3D_VERSION: ${{ steps.cs3d-ref.outputs.version }}
# ── Common: run tests ───────────────────────────────────────────────
- name: Install Playwright browsers
# Only chromium is used (see playwright.config.ts and tests/globalSetup.ts);
# firefox/webkit projects are commented out. Scoping the install to chromium
# avoids downloading + dep-validating browsers we never launch (the WebKit
# validation is what surfaces the "missing libwoff1/libflite1/..." error on
# hosts without those libs).
run: npx playwright install chromium
- name: Run Playwright tests
run: |
export NODE_OPTIONS="--max_old_space_size=10192"
bash .scripts/ci/with-nashua-lock.sh pnpm run test:e2e:coverage
# ── Common: collect test results and coverage ───────────────────────
- name: Create directory of test results
if: ${{ !cancelled() }}
run: |
mkdir -p packaged-test-results
cp -r ./tests/test-results packaged-test-results/ || true
cp -r ./tests/playwright-report packaged-test-results/ || true
- name: Upload directory of test results artifact
if: ${{ !cancelled() }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: playwright-results
path: packaged-test-results/
retention-days: 5
- name: create the coverage report
run: |
pnpm exec nyc report --reporter=lcov --reporter=text
- name: Upload the coverage report to GitHub Actions Artifacts
if: ${{ !cancelled() }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: coverage-report-pr
path: coverage
retention-days: 3
# ── CS3D: build and deploy preview to Netlify ───────────────────────
- name: Log build context (OHIF/CS3D branch and version for build diagnosis)
if: steps.cs3d-check.outputs.enabled == 'true'
run: |
if [[ "$CS3D_REF_TYPE" == "branch" ]]; then
echo "::notice::Build type: ohif-downstream | OHIF: ${{ github.repository }}@${{ github.ref }} (${{ github.sha }}) | CS3D: branch ${{ steps.cs3d-check.outputs.cs3d_ref }}"
else
echo "::notice::Build type: ohif-upstream | OHIF: ${{ github.repository }}@${{ github.ref }} (${{ github.sha }}) | CS3D: version ${{ steps.cs3d-ref.outputs.version }}"
fi
node .scripts/log-build-context.mjs
env:
BUILD_TYPE:
${{ steps.cs3d-ref.outputs.type == 'branch' && 'ohif-downstream' || 'ohif-upstream' }}
CS3D_REF_TYPE: ${{ steps.cs3d-ref.outputs.type }}
- name: Build OHIF viewer (CS3D preview)
if: steps.cs3d-check.outputs.enabled == 'true'
run: pnpm run build:ci
- name: Deploy CS3D preview to Netlify
if: steps.cs3d-check.outputs.enabled == 'true'
run: |
RESULT=$(npx netlify-cli deploy --dir=platform/app/dist --alias="cs3d-pr-${PR_NUM}" --json --filter=@ohif/app) || {
echo "::error::Netlify deploy command failed"
exit 1
}
URL=$(echo "$RESULT" | jq -r '.deploy_url')
if [[ -z "$URL" || "$URL" == "null" ]]; then
echo "::error::Netlify deploy did not return a valid URL"
echo "$RESULT"
exit 1
fi
echo "::notice::CS3D preview deployed: $URL"
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
PR_NUM: ${{ github.event.pull_request.number || 'manual' }}
# ── CS3D: log results ───────────────────────────────────────────────
- name: Log CS3D build used
if: steps.cs3d-check.outputs.enabled == 'true'
run: |
if [[ "$CS3D_REF_TYPE" == "branch" ]]; then
echo "::notice::CS3D integration PASSED with branch ${CS3D_REF} (linked from libs/@cornerstonejs)"
else
echo "::notice::CS3D integration PASSED with @cornerstonejs/*@${CS3D_VERSION}"
fi
env:
CS3D_REF_TYPE: ${{ steps.cs3d-ref.outputs.type }}
CS3D_REF: ${{ steps.cs3d-check.outputs.cs3d_ref }}
CS3D_VERSION: ${{ steps.cs3d-ref.outputs.version }}
# ── Separate job: block merge when using a CS3D branch ─────────────
cs3d-branch-merge-guard:
name: 'CS3D Branch Merge Guard'
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false
- name: Check for CS3D branch usage
run: bash .scripts/ci/cs3d-branch-merge-guard.sh
env:
GH_TOKEN: ${{ github.token }}
EVENT_NAME: ${{ github.event_name }}
CS3D_REF_INPUT: ${{ github.event.inputs.cs3d_ref || '4.19+' }}
REPO: ${{ github.repository }}
PR_NUMBER: ${{ github.event.pull_request.number }}

51
.gitignore vendored
View File

@ -1,6 +1,8 @@
# Packages
node_modules
.cursor/
.claude/
.nyc_output/
# Output
build
dist
@ -8,11 +10,16 @@ docs/_book
src/version.js
junit.xml
coverage/
.docz/
.yarn/
.nx/
addOns/yarn.lock
playwright-report/
# YALC (for Erik)
.yalc
yalc.lock
*.dcm
# Logging, System files, misc.
.idea/
.npm
@ -20,8 +27,48 @@ npm-debug.log
package-lock.json
yarn-error.log
.DS_Store
.env
*.code-workspace
.directory
# Common Example Data Directories
sampledata/
example/deps/
docker/dcm4che/dcm4che-arc
# Cypress test results
videos/
# Locize settings
.locize
# autogenerated files
platform/app/src/pluginImports.js
CLAUDE.md
/Viewers.iml
platform/app/.recipes/Nginx-Dcm4Chee/logs/*
platform/app/.recipes/OpenResty-Orthanc/logs/*
.vercel
.vs
# PlayWright
node_modules/
tests/test-results/
tests/playwright-report/
/blob-report/
/playwright/.cache/
# cornerstone3D local linking
libs/
# Backup files
*~
# cornerstone3D local linking
libs/
link-cs3d.js
unlink-cs3d.js
auth.json

4
.gitmodules vendored Normal file
View File

@ -0,0 +1,4 @@
[submodule "testdata"]
path = testdata
url = https://github.com/OHIF/viewer-testdata-dicomweb.git
branch = main

45
.jscsrc
View File

@ -1,45 +0,0 @@
{
"requireCurlyBraces": {
"keywords": [ "if", "else", "for", "while", "do" ],
"allExcept" : ["return" , "continue", "break"]
},
"requireSpaceAfterKeywords": [ "if", "else", "for", "while", "do", "switch", "return" ],
"requireSpacesInFunctionExpression": {
"beforeOpeningCurlyBrace": true
},
"disallowSpacesInFunctionExpression": {
"beforeOpeningRoundBrace": true
},
"disallowSpacesInsideParentheses": true,
"disallowKeywordsOnNewLine": ["else"],
"disallowNewlineBeforeBlockStatements": true,
"requirePaddingNewLinesAfterUseStrict": true,
"requirePaddingNewLinesAfterBlocks": {
"allExcept": ["inCallExpressions", "inArrayExpressions", "inProperties"]
},
"requireObjectKeysOnNewLine": true,
"requireSemicolons": true,
"requireSpaceAfterBinaryOperators": true,
"requireSpaceAfterComma": true,
"requireSpaceBeforeObjectValues": true,
"requireSpacesInsideObjectBrackets": "all",
"requireLineBreakAfterVariableAssignment": true,
"requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="],
"disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-"],
"disallowSpaceBeforePostfixUnaryOperators": ["++", "--"],
"disallowKeywords": [ "with" ],
"disallowMultipleLineBreaks": true,
"requireLineFeedAtFileEnd": true,
"disallowSpaceAfterObjectKeys": true,
"disallowQuotedKeysInObjects": true,
"disallowMultipleSpaces": true,
"disallowVar": true,
"validateLineBreaks": "LF",
"validateIndentation": 4,
"validateQuoteMarks": {
"mark": "'",
"escape": true
},
"validateParameterSeparator": ", ",
"requireDollarBeforejQueryAssignment": true
}

View File

@ -1,93 +0,0 @@
{
// JSHint Default Configuration File (as on JSHint website)
// See http://jshint.com/docs/ for more details
"maxerr" : 50, // {int} Maximum error before stopping
// Enforcing
"bitwise" : true, // true: Prohibit bitwise operators (&, |, ^, etc.)
"camelcase" : false, // true: Identifiers must be in camelCase
"curly" : false, // true: Require {} for every new block or scope
"eqeqeq" : true, // true: Require triple equals (===) for comparison
"forin" : true, // true: Require filtering for..in loops with obj.hasOwnProperty()
"freeze" : true, // true: prohibits overwriting prototypes of native objects such as Array, Date etc.
"immed" : false, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());`
"latedef" : false, // true: Require variables/functions to be defined before being used
"newcap" : false, // true: Require capitalization of all constructor functions e.g. `new F()`
"noarg" : true, // true: Prohibit use of `arguments.caller` and `arguments.callee`
"noempty" : true, // true: Prohibit use of empty blocks
"nonbsp" : true, // true: Prohibit "non-breaking whitespace" characters.
"nonew" : false, // true: Prohibit use of constructors for side-effects (without assignment)
"plusplus" : false, // true: Prohibit use of `++` and `--`
"quotmark" : false, // Quotation mark consistency:
// false : do nothing (default)
// true : ensure whatever is used is consistent
// "single" : require single quotes
// "double" : require double quotes
"undef" : true, // true: Require all non-global variables to be declared (prevents global leaks)
"unused" : "vars", // Unused variables:
// true : all variables, last function parameter
// "vars" : all variables only
// "strict" : all variables, all function parameters
"strict" : false, // true: Requires all functions run in ES5 Strict Mode
"maxparams" : false, // {int} Max number of formal params allowed per function
"maxdepth" : false, // {int} Max depth of nested blocks (within functions)
"maxstatements" : false, // {int} Max number statements per function
"maxcomplexity" : false, // {int} Max cyclomatic complexity per function
"maxlen" : false, // {int} Max number of characters per line
"varstmt" : false, // true: Disallow any var statements. Only `let` and `const` are allowed.
// Relaxing
"asi" : false, // true: Tolerate Automatic Semicolon Insertion (no semicolons)
"boss" : false, // true: Tolerate assignments where comparisons would be expected
"debug" : false, // true: Allow debugger statements e.g. browser breakpoints.
"eqnull" : false, // true: Tolerate use of `== null`
"es5" : true, // true: Allow ES5 syntax (ex: getters and setters)
"esnext" : true, // true: Allow ES.next (ES6) syntax (ex: `const`)
"moz" : false, // true: Allow Mozilla specific syntax (extends and overrides esnext features)
// (ex: `for each`, multiple try/catch, function expression…)
"evil" : false, // true: Tolerate use of `eval` and `new Function()`
"expr" : false, // true: Tolerate `ExpressionStatement` as Programs
"funcscope" : false, // true: Tolerate defining variables inside control statements
"globalstrict" : false, // true: Allow global "use strict" (also enables 'strict')
"iterator" : false, // true: Tolerate using the `__iterator__` property
"lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block
"laxbreak" : false, // true: Tolerate possibly unsafe line breakings
"laxcomma" : false, // true: Tolerate comma-first style coding
"loopfunc" : false, // true: Tolerate functions being defined in loops
"multistr" : false, // true: Tolerate multi-line strings
"noyield" : false, // true: Tolerate generator functions with no yield statement in them.
"notypeof" : false, // true: Tolerate invalid typeof operator values
"proto" : false, // true: Tolerate using the `__proto__` property
"scripturl" : false, // true: Tolerate script-targeted URLs
"shadow" : false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;`
"sub" : false, // true: Tolerate using `[]` notation when it can still be expressed in dot notation
"supernew" : false, // true: Tolerate `new function () { ... };` and `new Object;`
"validthis" : false, // true: Tolerate using this in a non-constructor function
// Environments
"browser" : true, // Web Browser (window, document, etc)
"browserify" : false, // Browserify (node.js code in the browser)
"couch" : false, // CouchDB
"devel" : false, // Development/debugging (alert, confirm, etc)
"dojo" : false, // Dojo Toolkit
"jasmine" : false, // Jasmine
"jquery" : true, // jQuery
"mocha" : false, // Mocha
"mootools" : false, // MooTools
"node" : false, // Node.js
"nonstandard" : false, // Widely adopted globals (escape, unescape, etc)
"phantom" : false, // PhantomJS
"prototypejs" : false, // Prototype and Scriptaculous
"qunit" : false, // QUnit
"rhino" : false, // Rhino
"shelljs" : false, // ShellJS
"typed" : false, // Globals for typed array constructions
"worker" : false, // Web Workers
"wsh" : false, // Windows Scripting Host
"yui" : false, // Yahoo User Interface
"globals" : {
"require": true,
"Package": true // Meteor Package definition
}
}

View File

@ -0,0 +1,26 @@
#!/bin/bash
# Set directory to location of this script
# https://stackoverflow.com/a/3355423/1867984
cd "$(dirname "$0")"
cd .. # Up to project root
# Helpful to verify which versions we're using
echo 'My pnpm version is... '
pnpm -v
node -v
# Build && Move PWA Output
pnpm run build:ci
mkdir -p ./.netlify/www/pwa
mv platform/app/dist/* .netlify/www/pwa -v
echo 'Web application built and copied'
# Build && Move Docusaurus Output (for the docs themselves)
pnpm --filter ohif-docs run build
mkdir -p ./.netlify/www/docs
mv platform/docs/build/* .netlify/www/docs -v
echo 'Docs built (docusaurus) and copied'
echo 'Nothing left to see here. Go home, folks.'

View File

@ -0,0 +1,5 @@
# Specific to our non-deploy-preview deploys
# Confgure redirects using netlify.toml
# PWA Redirect
/* /index.html 200

14
.netlify/package.json Normal file
View File

@ -0,0 +1,14 @@
{
"name": "root",
"private": true,
"engines": {
"node": ">=24",
"pnpm": ">=11"
},
"scripts": {
"deploy": "netlify deploy --prod --dir ./../platform/app/dist"
},
"devDependencies": {
"netlify-cli": "2.21.0"
}
}

10
.netlify/www/_redirects Normal file
View File

@ -0,0 +1,10 @@
# Specific to our deploy-preview
# Our docs are published using CircleCI + GitBook
# Confgure redirects using netlify.toml
# PWA Demo
/pwa/* /pwa/index.html 200
# UI Demo
/ui/* /ui/index.html 200
# UI Demo
/docs/* /docs/index.html 200

21
.netlify/www/index.html Normal file
View File

@ -0,0 +1,21 @@
<html>
<head>
<title>OHIF Viewer: Deploy Preview</title>
</head>
<body>
<h1>Index of Previews</h1>
<ul>
<li>
<a href="/pwa">OHIF Viewer</a>
</li>
<li>
<a href="/docs">Documentation</a>
</li>
<li>
<a href="/ui">UI: Component Library</a>
</li>
</ul>
</body>
</html>

1
.node-version Normal file
View File

@ -0,0 +1 @@
24.15.0

5
.npmrc Normal file
View File

@ -0,0 +1,5 @@
node-linker=hoisted
strict-peer-dependencies=false
link-workspace-packages=true
prefer-workspace-packages=true
manage-package-manager-versions=false

24
.nycrc.json Normal file
View File

@ -0,0 +1,24 @@
{
"extends": "@istanbuljs/nyc-config-typescript",
"instrument": true,
"sourceMap": true,
"cache": false,
"all": true,
"include": [
"platform/*/src/**/*.ts",
"platform/*/src/**/*.js",
"extensions/*/src/**/*.ts",
"extensions/*/src/**/*.js",
"modes/*/src/**/*.ts",
"modes/*/src/**/*.js"
],
"exclude": [
"**/*.spec.ts",
"**/*.test.ts",
"**/test/**",
"**/tests/**",
"**/examples/**",
"**/stories/**",
"platform/docs/**"
]
}

1
.prettierignore Normal file
View File

@ -0,0 +1 @@
*.md

View File

@ -1,9 +1,12 @@
{
"plugins": ["prettier-plugin-tailwindcss"],
"trailingComma": "es5",
"printWidth": 80,
"printWidth": 100,
"proseWrap": "always",
"tabWidth": 2,
"semi": true,
"singleQuote": true,
"endOfLine": "lf"
"arrowParens": "avoid",
"singleAttributePerLine": true,
"endOfLine": "auto"
}

View File

@ -1,14 +0,0 @@
{
"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"
}
]
]
}

View File

@ -0,0 +1,42 @@
#!/usr/bin/env bash
# CS3D branch merge guard: blocks merge when tests ran against a CS3D branch (not a version).
# Exits 0 when merge is allowed or guard is skipped; exits 1 when merge must be blocked.
#
# Required env: GH_TOKEN, EVENT_NAME, REPO, PR_NUMBER
# Optional env: CS3D_REF_INPUT (for workflow_dispatch, default 4.19+)
set -e
if [[ "$EVENT_NAME" == "workflow_dispatch" ]]; then
echo "::notice::workflow_dispatch — no merge to block, skipping guard."
exit 0
elif [[ "$EVENT_NAME" == "pull_request" ]]; then
LABELS=$(gh api "repos/${REPO}/issues/${PR_NUMBER}/labels" --jq '.[].name')
if echo "$LABELS" | grep -q "ohif-integration"; then
ENABLED=true
CS3D_REF=$(gh api "repos/${REPO}/pulls/${PR_NUMBER}" --jq '.body' \
| sed -n 's/^[[:space:]]*CS3D_REF:[[:space:]]*\([^[:space:]]*\).*/\1/p' | head -1)
if [[ -z "$CS3D_REF" ]]; then
CS3D_REF="4.19+"
fi
else
ENABLED=false
fi
else
ENABLED=false
fi
if [[ "$ENABLED" != "true" ]]; then
echo "::notice::No ohif-integration label — skipping merge guard."
exit 0
fi
# Check if the ref is a branch (not a version)
if [[ "$CS3D_REF" =~ ^[0-9]+\.[0-9x]+\+?(\.[0-9x]+)?(-[a-zA-Z0-9._]+)?$ ]]; then
echo "::notice::CS3D ref '$CS3D_REF' is a version — merge allowed."
exit 0
fi
echo "::error::Tests ran against CS3D branch '${CS3D_REF}' — this build cannot be merged."
echo "::error::Re-run with a published CS3D version (e.g. 4.19+) before merging."
exit 1

View File

@ -0,0 +1,29 @@
#!/usr/bin/env bash
# CS3D integration check: detects ohif-integration label and parses CS3D_REF.
# Writes to GITHUB_OUTPUT: enabled (true|false), cs3d_ref (when enabled).
#
# Required env: GH_TOKEN, EVENT_NAME, REPO, PR_NUMBER, GITHUB_OUTPUT
# Optional env: CS3D_REF_INPUT (for workflow_dispatch, default 4.19+)
set -e
if [[ "$EVENT_NAME" == "workflow_dispatch" ]]; then
echo "enabled=true" >> "$GITHUB_OUTPUT"
echo "cs3d_ref=${CS3D_REF_INPUT:-4.19+}" >> "$GITHUB_OUTPUT"
elif [[ "$EVENT_NAME" == "pull_request" ]]; then
LABELS=$(gh api "repos/${REPO}/issues/${PR_NUMBER}/labels" --jq '.[].name')
if echo "$LABELS" | grep -q "ohif-integration"; then
echo "enabled=true" >> "$GITHUB_OUTPUT"
REF=$(gh api "repos/${REPO}/pulls/${PR_NUMBER}" --jq '.body' \
| sed -n 's/^[[:space:]]*CS3D_REF:[[:space:]]*\([^[:space:]]*\).*/\1/p' | head -1)
if [[ -z "$REF" ]]; then
REF="4.19+"
fi
echo "cs3d_ref=${REF}" >> "$GITHUB_OUTPUT"
echo "::notice::CS3D ref from PR body: ${REF}"
else
echo "enabled=false" >> "$GITHUB_OUTPUT"
fi
else
echo "enabled=false" >> "$GITHUB_OUTPUT"
fi

View File

@ -0,0 +1,54 @@
#!/usr/bin/env bash
#
# Run a command while holding the nashua Playwright mutex.
#
# Only one Playwright run may execute at a time on the shared nashua self-hosted
# runner — across THIS repo (OHIF) AND the cornerstone3D repo. GitHub's
# `concurrency:` is scoped per-repository and cannot coordinate across the two
# orgs, so the mutex lives on the box's filesystem.
#
# This is OHIF's own copy (the script can't be shared across separate repos). It
# MUST use the SAME lock path as cornerstone3D's copy (NASHUA_LOCK_FILE default
# below) — if the paths differ, the mutex silently does nothing.
#
# flock holds the lock via fd 9 and it releases automatically when the wrapped
# command exits — including on job cancel / timeout / SIGKILL — so there are no
# stale locks to clean up.
#
# Usage: .scripts/ci/with-nashua-lock.sh <command> [args...]
# Strict mode: -e abort on any unhandled command failure, -u treat use of an
# unset variable as an error, -o pipefail make a pipeline fail if ANY stage
# fails (not just the last). Catches mistakes early instead of pressing on.
set -euo pipefail
LOCK="${NASHUA_LOCK_FILE:-/var/tmp/nashua-playwright.lock}" # MUST match cornerstone3D's copy
LOCK_WAIT="${NASHUA_LOCK_WAIT:-5400}" # max seconds to wait
# Guard: a command to wrap is required. With no arguments there is nothing to
# run, so print usage and exit instead of silently grabbing and releasing the
# lock for no reason (which would mask a mis-wired workflow step).
if [ "$#" -eq 0 ]; then
echo "usage: $0 <command> [args...]" >&2
exit 2
fi
# Open the lock file on fd 9 (read-write, create if missing, never truncate).
exec 9<>"$LOCK" || { echo "::error::cannot open lock file $LOCK"; exit 1; }
# Try instantly; if busy, report who holds it, then block up to LOCK_WAIT.
if ! flock -n 9; then
echo "nashua Playwright runner busy — held by: $(cat "${LOCK}.info" 2>/dev/null || echo unknown). Waiting up to ${LOCK_WAIT}s…"
if ! flock -w "$LOCK_WAIT" 9; then
echo "::error::Timed out after ${LOCK_WAIT}s waiting for the nashua Playwright lock"
exit 1
fi
fi
# Record the current holder for other jobs' "held by" message (best-effort).
echo "${GITHUB_REPOSITORY:-local}#${GITHUB_RUN_ID:-0} @ $(date -u +%FT%TZ 2>/dev/null || true)" > "${LOCK}.info" 2>/dev/null || true
echo "✅ Acquired nashua Playwright lock ($LOCK); running: $*"
# Replace the shell with the command. fd 9 is inherited (not close-on-exec), so
# the lock is held for the whole command and released when it exits.
exec "$@"

55
.scripts/cs3d-check.mjs Normal file
View File

@ -0,0 +1,55 @@
import fs from 'node:fs';
import path from 'node:path';
import { execSync } from 'node:child_process';
const workflowPath = path.resolve(
process.cwd(),
'libs',
'@cornerstonejs',
'.github',
'workflows',
'ohif-downstream.yml'
);
if (!fs.existsSync(workflowPath)) {
console.error(`[cs3d:check] Workflow file not found: ${workflowPath}`);
process.exit(1);
}
const workflowText = fs.readFileSync(workflowPath, 'utf8');
const ohifRefMatch = workflowText.match(/^\s*OHIF_REF:\s*["']?([^"'\r\n]+)["']?\s*$/m);
if (!ohifRefMatch) {
console.error('[cs3d:check] Could not find OHIF_REF in ohif-downstream workflow.');
process.exit(1);
}
const expectedBranch = ohifRefMatch[1].trim();
let currentBranch = '';
try {
currentBranch = execSync('git rev-parse --abbrev-ref HEAD', {
cwd: process.cwd(),
encoding: 'utf8',
}).trim();
} catch (error) {
console.error('[cs3d:check] Failed to determine current git branch.');
process.exit(1);
}
if (currentBranch !== expectedBranch) {
console.error(
`[cs3d:check] Branch mismatch: current='${currentBranch}', expected='${expectedBranch}' from ${path.relative(
process.cwd(),
workflowPath
)}`
);
process.exit(1);
}
console.log(
`[cs3d:check] OK: current branch '${currentBranch}' matches OHIF_REF in ${path.relative(
process.cwd(),
workflowPath
)}`
);

View File

@ -0,0 +1,63 @@
#!/usr/bin/env node
/**
* Resolves a version pattern to a concrete npm version of @cornerstonejs/core.
*
* Patterns:
* 4.18.2 -> 4.18.2 (exact, returned as-is)
* 4.18.2-beta.3 -> 4.18.2-beta.3 (exact prerelease)
* 4.x -> latest 4.* from npm
* 4.17.x -> latest 4.17.* from npm
* 4.19+ -> latest >=4.19.0 <5.0.0-0 from npm (4.19 and later, same major)
*
* Prints the resolved version to stdout.
*/
import { execSync } from 'child_process';
const pattern = process.argv[2];
if (!pattern) {
console.error('Usage: cs3d-resolve-version.mjs <pattern>');
console.error(' e.g. 4.x, 4.17.x, 4.19+, 4.18.2, 4.18.2-beta.3');
process.exit(1);
}
// Exact version (no wildcard or range) — pass through unchanged
if (!pattern.includes('x') && !pattern.endsWith('+')) {
console.log(pattern);
process.exit(0);
}
// Convert "M.m+" to npm semver range ">=M.m.0 <(M+1).0.0-0"
let npmRange = pattern;
const plusMatch = pattern.match(/^(\d+)\.(\d+)\+$/);
if (plusMatch) {
const major = Number(plusMatch[1]);
const minor = Number(plusMatch[2]);
npmRange = `>=${major}.${minor}.0 <${major + 1}.0.0-0`;
}
try {
// Let npm resolve the range: @package@<range> → concrete version
const raw = execSync(`npm view @cornerstonejs/core@"${npmRange}" version --json`, {
encoding: 'utf8',
timeout: 30_000,
});
const resolved = JSON.parse(raw);
if (!resolved) {
console.error(`npm returned no version when resolving @cornerstonejs/core@${npmRange}`);
process.exit(1);
}
// npm may return an array of versions for ranges; pick the latest (last) one
const version = Array.isArray(resolved) ? resolved[resolved.length - 1] : resolved;
console.log(version);
} catch (err) {
const message =
(err && (err.stderr?.toString() || err.message || String(err))) ||
`Unknown error resolving @cornerstonejs/core@${pattern}`;
console.error(`Failed to resolve @cornerstonejs/core version for pattern "${pattern}":`);
console.error(message);
process.exit(1);
}

View File

@ -0,0 +1,131 @@
#!/usr/bin/env node
/**
* Updates all @cornerstonejs/* package versions across the OHIF workspace.
*
* Usage: node .scripts/cs3d-set-version.mjs <version>
*
* Only updates the 8 main CS3D packages (not codec packages):
* adapters, ai, core, dicom-image-loader, labelmap-interpolation,
* nifti-volume-loader, polymorphic-segmentation, tools
*/
import { readFileSync, writeFileSync, existsSync, readdirSync } from 'fs';
import { resolve, dirname, join } from 'path';
import { fileURLToPath } from 'url';
const __dirname = dirname(fileURLToPath(import.meta.url));
const rootDir = resolve(__dirname, '..');
const version = process.argv[2];
if (!version) {
console.error('Usage: cs3d-set-version.mjs <version>');
console.error(' e.g. 4.18.2, 4.19.0-beta.1');
process.exit(1);
}
// The 8 CS3D packages that are built from source (not codecs)
const CS3D_PACKAGES = [
'@cornerstonejs/adapters',
'@cornerstonejs/ai',
'@cornerstonejs/core',
'@cornerstonejs/dicom-image-loader',
'@cornerstonejs/labelmap-interpolation',
'@cornerstonejs/nifti-volume-loader',
'@cornerstonejs/polymorphic-segmentation',
'@cornerstonejs/tools',
];
// Read root package.json to get workspace globs
const rootPkgPath = resolve(rootDir, 'package.json');
const rootPkg = JSON.parse(readFileSync(rootPkgPath, 'utf8'));
const workspaceGlobs = rootPkg.workspaces?.packages || rootPkg.workspaces || [];
// Collect all package.json paths from workspace globs
function findWorkspacePackageJsons() {
const paths = [rootPkgPath]; // include root
for (const pattern of workspaceGlobs) {
const parts = pattern.split('/');
let searchDir = rootDir;
let hasWildcard = false;
for (const part of parts) {
if (part === '*') {
hasWildcard = true;
break;
}
searchDir = join(searchDir, part);
}
if (hasWildcard) {
try {
const entries = readdirSync(searchDir, { withFileTypes: true });
for (const entry of entries) {
if (entry.isDirectory()) {
const pkgJson = join(searchDir, entry.name, 'package.json');
if (existsSync(pkgJson)) {
paths.push(pkgJson);
}
}
}
} catch {
// directory doesn't exist, skip
}
} else {
const pkgJson = join(rootDir, pattern, 'package.json');
if (existsSync(pkgJson)) {
paths.push(pkgJson);
}
}
}
return paths;
}
// Update a dependencies object, returning count of changes
function updateDeps(deps, targetVersion) {
let count = 0;
if (!deps) return count;
for (const pkg of CS3D_PACKAGES) {
if (pkg in deps && deps[pkg] !== targetVersion) {
deps[pkg] = targetVersion;
count++;
}
}
return count;
}
const pkgPaths = findWorkspacePackageJsons();
let totalChanges = 0;
for (const pkgPath of pkgPaths) {
const content = readFileSync(pkgPath, 'utf8');
const pkg = JSON.parse(content);
let changes = 0;
changes += updateDeps(pkg.dependencies, version);
changes += updateDeps(pkg.devDependencies, version);
changes += updateDeps(pkg.peerDependencies, version);
changes += updateDeps(pkg.resolutions, version);
if (changes > 0) {
// Preserve original formatting (detect indent — restrict to spaces/tabs so
// we don't accidentally capture a CRLF newline as part of the indent string)
const indent = content.match(/^([ \t]+)/m)?.[1] || ' ';
writeFileSync(pkgPath, JSON.stringify(pkg, null, indent) + '\n');
const rel = pkgPath.replace(rootDir + '/', '').replace(rootDir + '\\', '');
console.log(` Updated ${rel} (${changes} packages)`);
totalChanges += changes;
}
}
console.log(
`\nDone: ${totalChanges} version(s) updated to ${version} across ${pkgPaths.length} package files.`
);
console.log(
'This step changes package.json; the following install must not use a frozen Bun lockfile ' +
'(OHIF+CS3D combined “version” CI does: `bun install --config=./bunfig.update-lockfile.toml`). ' +
'Other installs stay frozen. Locally after this script, use that bun command and/or ' +
'`bun run install:update-lockfile` when you intend to commit lockfile updates.\n'
);

14
.scripts/dev.sh Executable file
View File

@ -0,0 +1,14 @@
#!/bin/bash
# https://github.com/shelljs/shelljs
# https://github.com/shelljs/shelljs#exclude-options
PROJECT=$1
if [ -z "$PROJECT" ]
then
# Default
pnpm --filter @ohif/app run dev:viewer
else
pnpm --filter @ohif/app run "dev:$PROJECT"
fi
read -p 'Press [Enter] key to continue...'

View File

@ -0,0 +1,273 @@
/*
* This script uses nodejs to generate a JSON file from a DICOM study folder.
* You need to have dcmjs installed in your project.
* The JSON file can be used to load the study into the OHIF Viewer. You can get more detail
* in the DICOM JSON Data source on docs.ohif.org
*
* Usage: node dicom-json-generator.js <studyFolder> <urlPrefix> <outputJSONPath> <optional scheme>
*
* params:
* - studyFolder: path to the study folder which contains the DICOM files
* - urlPrefix: prefix to the url that will be used to load the study into the viewer. For instance
* we use https://ohif-assets.s3.us-east-2.amazonaws.com/dicom-json/data as the urlPrefix for the
* example since the data is hosted on S3 and each study is in a folder. So the url in the generated
* json file for the first instance of the first series of the first study will be
* dicomweb:https://ohif-assets.s3.us-east-2.amazonaws.com/dicom-json/data/Series1/Instance1
*
* as you see the dicomweb is a prefix that is used to load the data into the viewer, which is suited when
* the .dcm file is hosted statically and can be accessed via a URL (like our example above)
* However, you can specify a new scheme bellow.
*
* - outputJSONPath: path to the output JSON file
* - scheme: default dicomweb if not provided
*/
const dcmjs = require('dcmjs');
const path = require('path');
const fs = require('fs').promises;
const args = process.argv.slice(2);
const [studyDirectory, urlPrefix, outputPath, scheme = 'dicomweb'] = args;
if (args.length < 3 || args.length > 4) {
console.error(
'Usage: node dicom-json-generator.js <studyFolder> <urlPrefix> <outputJSONPath> [scheme]'
);
process.exit(1);
}
const model = {
studies: [],
};
async function convertDICOMToJSON(studyDirectory, urlPrefix, outputPath, scheme) {
try {
const files = await recursiveReadDir(studyDirectory);
console.debug('Processing...');
for (const file of files) {
if (!file.includes('.DS_Store') && !file.includes('.xml')) {
const arrayBuffer = await fs.readFile(file);
const dicomDict = dcmjs.data.DicomMessage.readFile(arrayBuffer.buffer);
const instance = dcmjs.data.DicomMetaDictionary.naturalizeDataset(dicomDict.dict);
instance.fileLocation = createImageId(file, urlPrefix, studyDirectory, scheme);
processInstance(instance);
}
}
console.log('Successfully loaded data');
model.studies.forEach(study => {
study.NumInstances = findInstancesNumber(study);
study.Modalities = findModalities(study).join('/');
});
await fs.writeFile(outputPath, JSON.stringify(model, null, 2));
console.log('JSON saved');
} catch (error) {
console.error(error);
}
}
async function recursiveReadDir(dir) {
let results = [];
const list = await fs.readdir(dir);
for (const file of list) {
const filePath = path.resolve(dir, file);
const stat = await fs.stat(filePath);
if (stat.isDirectory()) {
const res = await recursiveReadDir(filePath);
results = results.concat(res);
} else {
results.push(filePath);
}
}
return results;
}
function createImageId(fileLocation, urlPrefix, studyDirectory, scheme) {
const relativePath = path.relative(studyDirectory, fileLocation);
const normalizedPath = path.normalize(relativePath).replace(/\\/g, '/');
return `${scheme}:${urlPrefix}${normalizedPath}`;
}
function processInstance(instance) {
const { StudyInstanceUID, SeriesInstanceUID } = instance;
let study = getStudy(StudyInstanceUID);
if (!study) {
study = createStudyMetadata(StudyInstanceUID, instance);
model.studies.push(study);
}
let series = getSeries(StudyInstanceUID, SeriesInstanceUID);
if (!series) {
series = createSeriesMetadata(instance);
study.series.push(series);
}
const instanceMetaData =
instance.NumberOfFrames > 1
? createInstanceMetaDataMultiFrame(instance)
: createInstanceMetaData(instance);
series.instances.push(...[].concat(instanceMetaData));
}
function getStudy(StudyInstanceUID) {
return model.studies.find(study => study.StudyInstanceUID === StudyInstanceUID);
}
function getSeries(StudyInstanceUID, SeriesInstanceUID) {
const study = getStudy(StudyInstanceUID);
return study
? study.series.find(series => series.SeriesInstanceUID === SeriesInstanceUID)
: undefined;
}
const findInstancesNumber = study => {
let numInstances = 0;
study.series.forEach(aSeries => {
numInstances = numInstances + aSeries.instances.length;
});
return numInstances;
};
const findModalities = study => {
let modalities = new Set();
study.series.forEach(aSeries => {
modalities.add(aSeries.Modality);
});
return Array.from(modalities);
};
function createStudyMetadata(StudyInstanceUID, instance) {
return {
StudyInstanceUID,
StudyDescription: instance.StudyDescription,
StudyDate: instance.StudyDate,
StudyTime: instance.StudyTime,
PatientName: instance.PatientName,
PatientID: instance.PatientID || '1234', // this is critical to have
AccessionNumber: instance.AccessionNumber,
PatientAge: instance.PatientAge,
PatientSex: instance.PatientSex,
PatientWeight: instance.PatientWeight,
series: [],
};
}
function createSeriesMetadata(instance) {
return {
SeriesInstanceUID: instance.SeriesInstanceUID,
SeriesDescription: instance.SeriesDescription,
SeriesNumber: instance.SeriesNumber,
SeriesTime: instance.SeriesTime,
Modality: instance.Modality,
SliceThickness: instance.SliceThickness,
instances: [],
};
}
function commonMetaData(instance) {
return {
Columns: instance.Columns,
Rows: instance.Rows,
InstanceNumber: instance.InstanceNumber,
SOPClassUID: instance.SOPClassUID,
AcquisitionNumber: instance.AcquisitionNumber,
PhotometricInterpretation: instance.PhotometricInterpretation,
BitsAllocated: instance.BitsAllocated,
BitsStored: instance.BitsStored,
PixelRepresentation: instance.PixelRepresentation,
SamplesPerPixel: instance.SamplesPerPixel,
PixelSpacing: instance.PixelSpacing,
HighBit: instance.HighBit,
ImageOrientationPatient: instance.ImageOrientationPatient,
ImagePositionPatient: instance.ImagePositionPatient,
FrameOfReferenceUID: instance.FrameOfReferenceUID,
ImageType: instance.ImageType,
Modality: instance.Modality,
SOPInstanceUID: instance.SOPInstanceUID,
SeriesInstanceUID: instance.SeriesInstanceUID,
StudyInstanceUID: instance.StudyInstanceUID,
WindowCenter: instance.WindowCenter,
WindowWidth: instance.WindowWidth,
RescaleIntercept: instance.RescaleIntercept,
RescaleSlope: instance.RescaleSlope,
};
}
function conditionalMetaData(instance) {
return {
...(instance.ConceptNameCodeSequence && {
ConceptNameCodeSequence: instance.ConceptNameCodeSequence,
}),
...(instance.SeriesDate && { SeriesDate: instance.SeriesDate }),
...(instance.ReferencedSeriesSequence && {
ReferencedSeriesSequence: instance.ReferencedSeriesSequence,
}),
...(instance.SharedFunctionalGroupsSequence && {
SharedFunctionalGroupsSequence: instance.SharedFunctionalGroupsSequence,
}),
...(instance.PerFrameFunctionalGroupsSequence && {
PerFrameFunctionalGroupsSequence: instance.PerFrameFunctionalGroupsSequence,
}),
...(instance.ContentSequence && { ContentSequence: instance.ContentSequence }),
...(instance.ContentTemplateSequence && {
ContentTemplateSequence: instance.ContentTemplateSequence,
}),
...(instance.CurrentRequestedProcedureEvidenceSequence && {
CurrentRequestedProcedureEvidenceSequence: instance.CurrentRequestedProcedureEvidenceSequence,
}),
...(instance.CodingSchemeIdentificationSequence && {
CodingSchemeIdentificationSequence: instance.CodingSchemeIdentificationSequence,
}),
...(instance.RadiopharmaceuticalInformationSequence && {
RadiopharmaceuticalInformationSequence: instance.RadiopharmaceuticalInformationSequence,
}),
...(instance.ROIContourSequence && {
ROIContourSequence: instance.ROIContourSequence,
}),
...(instance.StructureSetROISequence && {
StructureSetROISequence: instance.StructureSetROISequence,
}),
...(instance.ReferencedFrameOfReferenceSequence && {
ReferencedFrameOfReferenceSequence: instance.ReferencedFrameOfReferenceSequence,
}),
...(instance.CorrectedImage && { CorrectedImage: instance.CorrectedImage }),
...(instance.Units && { Units: instance.Units }),
...(instance.DecayCorrection && { DecayCorrection: instance.DecayCorrection }),
...(instance.AcquisitionDate && { AcquisitionDate: instance.AcquisitionDate }),
...(instance.AcquisitionTime && { AcquisitionTime: instance.AcquisitionTime }),
...(instance.PatientWeight && { PatientWeight: instance.PatientWeight }),
...(instance.NumberOfFrames && { NumberOfFrames: instance.NumberOfFrames }),
...(instance.FrameTime && { FrameTime: instance.FrameTime }),
...(instance.EncapsulatedDocument && { EncapsulatedDocument: instance.EncapsulatedDocument }),
...(instance.SequenceOfUltrasoundRegions && {
SequenceOfUltrasoundRegions: instance.SequenceOfUltrasoundRegions,
}),
};
}
function createInstanceMetaData(instance) {
const metadata = {
...commonMetaData(instance),
...conditionalMetaData(instance),
};
return { metadata, url: instance.fileLocation };
}
function createInstanceMetaDataMultiFrame(instance) {
const instances = [];
const commonData = commonMetaData(instance);
const conditionalData = conditionalMetaData(instance);
for (let i = 1; i <= instance.NumberOfFrames; i++) {
const metadata = { ...commonData, ...conditionalData };
const result = { metadata, url: instance.fileLocation + `?frame=${i}` };
instances.push(result);
}
return instances;
}
convertDICOMToJSON(studyDirectory, urlPrefix, outputPath, scheme);

View File

@ -0,0 +1,108 @@
#!/usr/bin/env node
/**
* Logs build context (OHIF branch/version, CS3D source) for diagnosing build issues on GitHub.
* Run from repo root. Used by version.mjs and can be invoked from CI workflows.
*/
import { execa } from 'execa';
import fs from 'fs/promises';
import path from 'path';
import { fileURLToPath } from 'url';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const REPO_ROOT = path.resolve(__dirname, '..');
function log(msg) {
console.log(`[build-context] ${msg}`);
}
async function detectCs3dSource() {
const libsCs3d = path.join(REPO_ROOT, 'libs/@cornerstonejs');
const coreInNodeModules = path.join(REPO_ROOT, 'node_modules/@cornerstonejs/core');
try {
const libsExists = await fs.access(libsCs3d).then(() => true).catch(() => false);
if (!libsExists) {
return { source: 'npm', detail: 'published @cornerstonejs packages (no libs/@cornerstonejs)' };
}
const coreStat = await fs.lstat(coreInNodeModules).catch(() => null);
const isSymlink = coreStat?.isSymbolicLink();
if (isSymlink) {
const target = await fs.readlink(coreInNodeModules);
return { source: 'integrated', detail: `linked from libs/@cornerstonejs (→ ${target})` };
}
return { source: 'npm', detail: 'published @cornerstonejs packages (libs exists but not linked)' };
} catch {
return { source: 'unknown', detail: 'could not detect' };
}
}
async function getCs3dVersion() {
try {
const corePkg = path.join(REPO_ROOT, 'node_modules/@cornerstonejs/core/package.json');
const pkg = JSON.parse(await fs.readFile(corePkg, 'utf-8'));
return pkg.version || 'unknown';
} catch {
return 'unknown';
}
}
async function getCs3dBranchFromLibs() {
try {
const libsCs3d = path.join(REPO_ROOT, 'libs/@cornerstonejs');
const { stdout } = await execa('git', ['rev-parse', '--abbrev-ref', 'HEAD'], {
cwd: libsCs3d,
});
return stdout;
} catch {
return null;
}
}
async function run() {
const inCI = process.env.GITHUB_ACTIONS === 'true';
const buildType = inCI ? (process.env.BUILD_TYPE || 'ohif-upstream') : 'local';
log('═══════════════════════════════════════════════════════════════');
log('Build context (for diagnosing GitHub build issues)');
log('═══════════════════════════════════════════════════════════════');
if (inCI) {
log(`Build type: ${process.env.BUILD_TYPE || 'ohif-upstream'}`);
log(`GitHub repo: ${process.env.GITHUB_REPOSITORY || 'unknown'}`);
log(`GitHub ref: ${process.env.GITHUB_REF || 'unknown'}`);
log(`GitHub SHA: ${process.env.GITHUB_SHA || 'unknown'}`);
log(`Workflow: ${process.env.GITHUB_WORKFLOW || 'unknown'}`);
}
try {
const { stdout: branch } = await execa('git', ['rev-parse', '--abbrev-ref', 'HEAD'], {
cwd: REPO_ROOT,
});
const { stdout: sha } = await execa('git', ['rev-parse', '--short', 'HEAD'], {
cwd: REPO_ROOT,
});
log(`OHIF branch: ${branch} (${sha})`);
} catch {
log('OHIF branch: (not a git repo or error)');
}
const cs3d = await detectCs3dSource();
log(`CS3D source: ${cs3d.source}${cs3d.detail}`);
if (cs3d.source === 'integrated') {
const branch = await getCs3dBranchFromLibs();
if (branch) log(`CS3D branch (libs/@cornerstonejs): ${branch}`);
} else {
const ver = await getCs3dVersion();
log(`CS3D version (@cornerstonejs/core): ${ver}`);
}
log('═══════════════════════════════════════════════════════════════');
}
run().catch((err) => {
console.error('[build-context] Error:', err.message);
process.exitCode = 1;
});

View File

@ -1,8 +1,13 @@
{
"recommendations": [
"esbenp.prettier-vscode",
"sysoev.language-stylus",
"streetsidesoftware.code-spell-checker",
"dbaeumer.vscode-eslint",
"mikestead.dotenv"
"mikestead.dotenv",
"bungcip.better-toml",
"silvenon.mdx",
"gruntfuggly.todo-tree",
"wayou.vscode-todo-highlight",
"bradlc.vscode-tailwindcss"
]
}

28
.vscode/launch.json vendored Normal file
View File

@ -0,0 +1,28 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "pwa-chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:3000",
"webRoot": "${workspaceFolder}"
}
// {
// "name": "Debug Jest Tests",
// "type": "node",
// "request": "launch",
// "runtimeArgs": [
// "--inspect-brk",
// "${workspaceRoot}/node_modules/.bin/jest",
// "--runInBand"
// ],
// "console": "integratedTerminal",
// "internalConsoleOptions": "neverOpen",
// "port": 9229
// }
]
}

145
.vscode/settings.json vendored
View File

@ -1,30 +1,117 @@
{
"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"
}
"editor.defaultFormatter": "esbenp.prettier-vscode",
"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.run": "onSave",
"jest.autoRun": "off",
"prettier.disableLanguages": ["html"],
"prettier.endOfLine": "lf",
"workbench.colorCustomizations": {},
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"cSpell.userWords": [
"aabb",
"architectured",
"attrname",
"Barksy",
"browserslist",
"bulkdata",
"Cacheable",
"cfun",
"clonedeep",
"Colormap",
"Colormaps",
"Comlink",
"cornerstonejs",
"Crosshairs",
"datasource",
"dcmjs",
"decache",
"decached",
"decaching",
"deepmerge",
"Dicom",
"dicomweb",
"DISPLAYSETS",
"glwindow",
"grababble",
"grabbable",
"Hounsfield",
"Interactable",
"Interactor",
"istyle",
"kitware",
"labelmap",
"labelmaps",
"livewire",
"Mergeable",
"multiframe",
"nifti",
"ofun",
"OHIF",
"polylines",
"POLYSEG",
"prapogation",
"precisionmetrics",
"prefetch",
"Prescaled",
"pydicom",
"Radiopharmaceutical",
"rasterizing",
"reconstructable",
"Rehydratable",
"renderable",
"resampler",
"resemblejs",
"reslice",
"resliced",
"Reslices",
"roadmap",
"ROADMAPS",
"rtstruct",
"Segmentations",
"semibold",
"sitk",
"SUBRESOLUTION",
"suvbsa",
"suvbw",
"suvlbm",
"textbox",
"thresholded",
"thresholding",
"timepoint",
"timepoints",
"TMTV",
"TOOLGROUP",
"tqdm",
"transferables",
"typedoc",
"unsubscriptions",
"uuidv",
"viewplane",
"viewports",
"Voxel",
"Voxels",
"Vtkjs",
"wado",
"wadors",
"wadouri",
"workerpool",
"Colorbar",
"Colorbars"
]
}

View File

@ -0,0 +1,22 @@
const path = require('path');
function excludeNodeModulesExcept(modules) {
var pathSep = path.sep;
if (pathSep == '\\')
// must be quoted for use in a regexp:
pathSep = '\\\\';
var moduleRegExps = modules.map(function (modName) {
return new RegExp('node_modules' + pathSep + modName);
});
return function (modulePath) {
if (/node_modules/.test(modulePath)) {
for (var i = 0; i < moduleRegExps.length; i++)
if (moduleRegExps[i].test(modulePath)) return false;
return true;
}
return false;
};
}
module.exports = excludeNodeModulesExcept;

51
.webpack/resolveConfig.js Normal file
View File

@ -0,0 +1,51 @@
const path = require('path');
// Shared module-resolution rules (alias + module search paths) used by BOTH
// build pipelines so they cannot drift apart:
// - the webpack/rspack build: webpack.base.js -> webpack.pwa.js, plus every
// per-package webpack.prod.js / webpack.dev.js that merges webpack.base.js
// - the rsbuild build: rsbuild.config.ts (dev:fast)
//
// Plugin aliases (writePluginImportsFile.getPluginResolveAliases) are NOT
// included here: they depend on pluginConfig.json and are merged in separately
// by each config.
//
// All paths are anchored to this file's location (the repo-root `.webpack/`
// directory), so the values are identical regardless of which package's build
// is doing the resolving.
const alias = {
// Some extensions import app-level utilities (e.g. history,
// preserveQueryParameters) from '@ohif/app'. pnpm's isolated layout does not
// expose the top-level app package to those extensions, and adding it as a
// workspace dependency would create an app<->default cycle, so we resolve the
// bare specifier to the app source here ($ = exact match).
'@ohif/app$': path.resolve(__dirname, '../platform/app/src/index.js'),
'@': path.resolve(__dirname, '../platform/app/src'),
'@components': path.resolve(__dirname, '../platform/app/src/components'),
'@hooks': path.resolve(__dirname, '../platform/app/src/hooks'),
'@routes': path.resolve(__dirname, '../platform/app/src/routes'),
'@state': path.resolve(__dirname, '../platform/app/src/state'),
};
// Directories to search when resolving modules. The leading bare 'node_modules'
// preserves the default importer-relative walk-up, which pnpm's isolated layout
// requires so that transitive deps (e.g. react-remove-scroll -> tslib 2.x)
// resolve to the sibling copy inside .pnpm/<pkg>/node_modules rather than a
// hoisted older version.
const moduleSearchPaths = [
'node_modules',
path.resolve(__dirname, '../node_modules'),
path.resolve(__dirname, '../../../node_modules'),
path.resolve(__dirname, '../platform/app/node_modules'),
path.resolve(__dirname, '../platform/ui/node_modules'),
];
// Build the resolve.modules array for a build. `srcDir` is the building
// package's source root; it is appended last (matching the previous inline
// behavior in webpack.base.js). Pass nothing to get just the shared paths.
function getModules(srcDir) {
return srcDir ? [...moduleSearchPaths, srcDir] : [...moduleSearchPaths];
}
module.exports = { alias, moduleSearchPaths, getModules };

View File

@ -0,0 +1,29 @@
const autoprefixer = require('autoprefixer');
const path = require('path');
const tailwindcss = require('tailwindcss');
const tailwindConfigPath = path.resolve('../../platform/app/tailwind.config.js');
const rspack = require('@rspack/core');
const devMode = process.env.NODE_ENV !== 'production';
const cssToJavaScript = {
test: /\.css$/,
use: [
//'style-loader',
devMode ? 'style-loader' : rspack.CssExtractRspackPlugin.loader,
{ loader: 'css-loader', options: { importLoaders: 1 } },
{
loader: 'postcss-loader',
options: {
postcssOptions: {
verbose: true,
plugins: [
[tailwindcss(tailwindConfigPath)],
[autoprefixer('last 2 version', 'ie >= 11')],
],
},
},
},
],
};
module.exports = cssToJavaScript;

View File

@ -0,0 +1,10 @@
/**
* This is exclusively used by `vtk.js` to bundle glsl files.
*/
const loadShaders = {
test: /\.glsl$/i,
include: /vtk\.js[\/\\]Sources/,
loader: 'shader-loader',
};
module.exports = loadShaders;

View File

@ -0,0 +1,17 @@
/**
* This allows us to include web workers in our bundle, and VTK.js
* web workers in our bundle. While this increases bundle size, it
* cuts down on the number of includes we need for `script tag` usage.
*/
const loadWebWorkers = {
test: /\.worker\.js$/,
include: /vtk\.js[\/\\]Sources/,
use: [
{
loader: 'worker-loader',
options: { inline: true, fallback: false },
},
],
};
module.exports = loadWebWorkers;

View File

@ -0,0 +1,10 @@
const stylusToJavaScript = {
test: /\.styl$/,
use: [
{ loader: 'style-loader' }, // 3. Style nodes from JS Strings
{ loader: 'css-loader' }, // 2. CSS to CommonJS
{ loader: 'stylus-loader' }, // 1. Stylus to CSS
],
};
module.exports = stylusToJavaScript;

View File

@ -0,0 +1,47 @@
const excludeNodeModulesExcept = require('./../helpers/excludeNodeModulesExcept.js');
function transpileJavaScript(mode) {
const exclude =
mode === 'production'
? excludeNodeModulesExcept([
// Workspace packages (needed for pnpm shamefully-hoist where they resolve through node_modules)
'@ohif',
// 'dicomweb-client',
// https://github.com/react-dnd/react-dnd/blob/master/babel.config.js
'react-dnd',
// https://github.com/dcmjs-org/dcmjs/blob/master/.babelrc
// https://github.com/react-dnd/react-dnd/issues/1342
// 'dcmjs', // contains: loglevelnext
// https://github.com/shellscape/loglevelnext#browser-support
// 'loglevelnext',
// https://github.com/dcmjs-org/dicom-microscopy-viewer/issues/35
// 'dicom-microscopy-viewer',
// https://github.com/openlayers/openlayers#supported-browsers
// 'ol', --> Should be fine
])
: excludeNodeModulesExcept([]);
return {
// Include mjs, ts, tsx, js, and jsx files.
test: /\.(mjs|ts|js)x?$/,
// These are packages that are not transpiled to our lowest supported
// JS version (currently ES5). Most of these leverage ES6+ features,
// that we need to transpile to a different syntax.
exclude: [/(codecs)/, /(dicomicc)/, exclude],
loader: 'babel-loader',
options: {
// Find babel.config.js in monorepo root
// https://babeljs.io/docs/en/options#rootmode
rootMode: 'upward',
envName: mode,
cacheCompression: false,
// Note: This was causing a lot of issues with yarn link of the cornerstone
// only set this to true if you don't have a yarn link to external libs
// otherwise expect the lib changes not to be reflected in the dev server
// as it will be cached
cacheDirectory: false,
},
};
}
module.exports = transpileJavaScript;

257
.webpack/webpack.base.js Normal file
View File

@ -0,0 +1,257 @@
// ~~ ENV
const dotenv = require('dotenv');
//
const path = require('path');
const fs = require('fs');
const webpack = require('@rspack/core');
// ~~ PLUGINS
// const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
// ~~ PackageJSON
// const vtkRules = require('vtk.js/Utilities/config/dependency.js').webpack.core
// .rules;
// ~~ RULES
// const loadShadersRule = require('./rules/loadShaders.js');
const loadWebWorkersRule = require('./rules/loadWebWorkers.js');
const transpileJavaScriptRule = require('./rules/transpileJavaScript.js');
const cssToJavaScript = require('./rules/cssToJavaScript.js');
// Module-resolution rules shared with the rsbuild build (see rsbuild.config.ts).
const resolveConfig = require('./resolveConfig');
// Only uncomment for old v2 stylus
// const stylusToJavaScript = require('./rules/stylusToJavaScript.js');
let ReactRefreshWebpackPlugin;
try {
const mod = require('@rspack/plugin-react-refresh');
ReactRefreshWebpackPlugin = mod.ReactRefreshRspackPlugin || mod.default || mod;
} catch { ReactRefreshWebpackPlugin = null; }
// ~~ ENV VARS
const NODE_ENV = process.env.NODE_ENV;
const QUICK_BUILD = process.env.QUICK_BUILD;
const BUILD_NUM = process.env.CIRCLE_BUILD_NUM || '0';
const IS_COVERAGE = process.env.COVERAGE === 'true';
// read from ../version.txt
const VERSION_NUMBER = fs.readFileSync(path.join(__dirname, '../version.txt'), 'utf8') || '';
const COMMIT_HASH = fs.readFileSync(path.join(__dirname, '../commit.txt'), 'utf8') || '';
//
dotenv.config();
const defineValues = {
/* Application */
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
'process.env.NODE_DEBUG': JSON.stringify(process.env.NODE_DEBUG),
'process.env.DEBUG': JSON.stringify(process.env.DEBUG),
'process.env.PUBLIC_URL': JSON.stringify(process.env.PUBLIC_URL || '/'),
'process.env.BUILD_NUM': JSON.stringify(BUILD_NUM),
'process.env.VERSION_NUMBER': JSON.stringify(VERSION_NUMBER),
'process.env.COMMIT_HASH': JSON.stringify(COMMIT_HASH),
/* i18n */
'process.env.USE_LOCIZE': JSON.stringify(process.env.USE_LOCIZE || ''),
'process.env.LOCIZE_PROJECTID': JSON.stringify(process.env.LOCIZE_PROJECTID || ''),
'process.env.LOCIZE_API_KEY': JSON.stringify(process.env.LOCIZE_API_KEY || ''),
'process.env.REACT_APP_I18N_DEBUG': JSON.stringify(process.env.REACT_APP_I18N_DEBUG || ''),
'process.env.TEST_ENV': JSON.stringify(process.env.TEST_ENV || ''),
};
// Only redefine updated values. This avoids warning messages in the logs
if (!process.env.APP_CONFIG) {
defineValues['process.env.APP_CONFIG'] = '';
}
module.exports = (env, argv, { SRC_DIR, ENTRY }) => {
const mode = NODE_ENV === 'production' ? 'production' : 'development';
const isProdBuild = NODE_ENV === 'production';
const isQuickBuild = QUICK_BUILD === 'true';
const config = {
mode: isProdBuild ? 'production' : 'development',
devtool: isProdBuild ? 'source-map' : 'cheap-module-source-map',
// `rspack serve` (@rspack/cli) auto-enables lazyCompilation for web-only
// apps unless the config defines it explicitly. The on-demand proxy chunks
// it produces fail to load in the headless cypress/electron e2e run
// (ChunkLoadError on cornerstone vendor chunks), so disable it here to match
// the rsbuild build (see rsbuild.config.ts `dev.lazyCompilation: false`).
lazyCompilation: false,
entry: ENTRY,
optimization: {
// splitChunks: {
// // include all types of chunks
// chunks: 'all',
// },
//runtimeChunk: 'single',
minimize: isProdBuild,
sideEffects: false,
},
output: {
// clean: true,
publicPath: '/',
},
context: SRC_DIR,
stats: {
colors: true,
hash: true,
timings: true,
assets: true,
chunks: false,
chunkModules: false,
modules: false,
children: false,
warnings: true,
},
cache: isProdBuild ? false : { type: 'filesystem' },
module: {
noParse: [/(dicomicc)/],
rules: [
...(isProdBuild
? []
: [
...(IS_COVERAGE
? [
{
test: /\.[jt]sx?$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-typescript', '@babel/preset-react'],
plugins: ['istanbul'],
},
},
},
]
: [
{
test: /\.[jt]sx?$/,
exclude: /node_modules/,
loader: 'babel-loader',
options: {
plugins: isProdBuild ? [] : ['react-refresh/babel'],
},
},
]),
]),
{
test: /\.svg?$/,
oneOf: [
{
use: [
{
loader: '@svgr/webpack',
options: {
svgoConfig: {
plugins: [
{
name: 'preset-default',
params: {
overrides: {
removeViewBox: false,
},
},
},
],
},
prettier: false,
svgo: true,
titleProp: true,
},
},
],
issuer: {
and: [/\.(ts|tsx|js|jsx|md|mdx)$/],
},
},
],
},
transpileJavaScriptRule(mode),
loadWebWorkersRule,
// loadShadersRule,
{
test: /\.m?js/,
resolve: {
fullySpecified: false,
},
},
cssToJavaScript,
{
test: /\.wasm/,
type: 'asset/resource',
},
{
test: /\.(png|jpe?g|gif|svg)$/i,
use: [
{
loader: 'file-loader',
options: {
name: 'assets/images/[name].[ext]',
},
},
],
},
{
test: /\.(woff|woff2|eot|ttf|otf)$/i,
type: 'asset/resource',
},
], //.concat(vtkRules),
},
resolve: {
mainFields: ['module', 'browser', 'main'],
// alias and modules are shared with the rsbuild build via ./resolveConfig
// so the two pipelines resolve identically.
alias: {
...resolveConfig.alias,
},
modules: resolveConfig.getModules(SRC_DIR),
// Attempt to resolve these extensions in order.
extensions: ['.js', '.jsx', '.json', '.ts', '.tsx', '*'],
// Workspace packages use relative imports between sibling packages.
// Resolve symlinks to keep those imports anchored at the real package paths.
symlinks: true,
fallback: {
fs: false,
path: false,
zlib: false,
buffer: require.resolve('buffer'),
},
},
node: {
// Leave __filename / __dirname references alone. The previous 'mock'
// value triggers an rspack warning whenever bundled deps reference
// __dirname (e.g. Emscripten-compiled cornerstone codecs). Those refs
// sit inside `if (ENVIRONMENT_IS_NODE)` branches that never execute in
// the browser, so leaving them un-substituted is harmless at runtime.
__filename: false,
__dirname: false,
},
plugins: [
new webpack.DefinePlugin(defineValues),
new webpack.ProvidePlugin({
Buffer: ['buffer', 'Buffer'],
}),
new webpack.IgnorePlugin({
resourceRegExp: /^(fs|path)$/,
contextRegExp: /@cornerstonejs[\\/]codec-/,
}),
...(isProdBuild || IS_COVERAGE || !ReactRefreshWebpackPlugin
? []
: [new ReactRefreshWebpackPlugin({ overlay: false })]),
// Uncomment to generate bundle analyzer
// new BundleAnalyzerPlugin(),
],
};
if (isProdBuild) {
config.optimization.minimizer = [new webpack.SwcJsMinimizerRspackPlugin()];
}
if (isQuickBuild) {
config.optimization.minimize = false;
config.devtool = false;
}
return config;
};

205
AGENTS.md Normal file
View File

@ -0,0 +1,205 @@
# AGENTS.md
This file provides guidance to AI coding agents (Claude, Codex, and other LLM tools) when working with code in this repository.
## Project Overview
This is **OHIF** v3 (Open Health Imaging Foundation) - a medical imaging viewer. It's an extensible web imaging platform.
## Development Commands
### Main Development
```bash
# Start development server for all packages
yarn dev
```
### Building
```bash
# Build all packages for production
yarn build
# Build specific packages
cd platform/app && yarn build # Main viewer app
```
## Architecture Overview
### Monorepo Structure
- **`platform/`** - Core OHIF infrastructure
- `app/` - Main viewer application (`@ohif/viewer`)
- `core/` - Core services and utilities
- `ui-next/` - Modern UI component library
- **`extensions/`** - Modular functionality plugins
- **`modes/`** - Application workflow configurations
### Key Extension Architecture
**Extension System**: Each extension exports modules (viewports, tools, panels, commands) that the app dynamically loads. Extensions are self-contained with their own webpack builds.
**Core Extensions:**
- `cornerstone/` - Medical image rendering engine
- `cornerstone-dicom-pmp/` - DICOM PMP support
- `cornerstone-dicom-seg/` - DICOM Segmentation support
- `cornerstone-dicom-sr/` - DICOM SR support
- `dicom-pdf/` - DICOM PDF support
- `dicom-video/` - DICOM Video support
- `measurement-tracking/` - Measurement tracking support
- `default/` - Standard OHIF functionality
### Service-Oriented Design (PUB-SUB)
The app uses a Services Manager pattern with these core services:
- **Display Set Service**: Manages image series organization
- **Measurement Service**: Handles annotations and measurements
- **Hanging Protocol Service**: Controls image layout and display rules
- **UI Service**: Manages panels, modals, and notifications
- **Segmentation Service**: AI/ML powered image segmentation, loading segmentations, etc.
- **Viewport Grid Service**: Manages viewport layout and display rules
- **Viewport Display Set History Service**: Manages viewport display set history
- **Viewport Dialog Service**: Manages viewport dialogs
- **Notification Service**: Manages notifications
- **Modal Service**: Manages modals
- **Dialog Service**: Manages dialogs, more general not just viewport dialogs
- **Customization Service**: Manages customization of the app
- **Toolbar Service**: Manages the toolbar, viewport action corners, tool states
- **User Authentication Service**: Manages user authentication, but used only for injecting tokens in dicomweb requests in our context
- **Panel Service**: Manages side panels
- **Cornerstone Viewport Service**: Manages the cornerstone viewport, rendering engines, presentation states, more tightly coupled to cornerstone than the other services
- **Tool Group Service**: Manages tool groups, creating and managing tool groups, etc.
- **Sync Group Service**: Manages sync groups, syncing zooming, panning, scrolling, etc.
- **Cornerstone Cache Service**: Manages the cornerstone cache, caching images, etc.
Most of the services utilize a pub sub architecture and extend the pub sub service interace at `pubSubServiceInterface.ts`
### Commands Manager
The Commands Manager tracks named commands (or functions) that are scoped to
a context. When we attempt to run a command with a given name, we look for it
in our active contexts, in the order specified.
If found, we run the command, passing in any application
or call specific data specified in the command's definition.
You can call `commandsManager.runCommand` to run a command.
### Extension Manager
Aggregates and exposes extension modules throughout the OHIF application, manages data sources, and provides a centralized registry for accessing extension functionality.
### Build System
**Yarn Workspaces**: Optimized monorepo builds with dependency caching
**Webpack 5**: Module federation for dynamic extension loading
**Plugin Import System**: Extensions auto-register via `writePluginImportsFile.js`
### Key Technologies
- **React 18 + TypeScript**: UI framework
- **Cornerstone.js**: Medical image rendering
- **DICOM**: Medical imaging standard support
- **ONNX Runtime**: AI model inference (SAM segmentation models)
- **Zustand**: State management
- **TailwindCSS**: Styling system
## Development Patterns
### Adding New Tools
1. Create tool class in `extensions/cornerstone/src/tools/`
2. Register in tool module's `toolNames.ts`
3. Add to toolbar via `getToolbarModule.tsx`
4. Add measurement mapping if needed in `measurementServiceMappings/`
### Creating Extensions
Extensions must export:
- `id.js` - Unique extension identifier
- `index.tsx` - Extension registration
- Module functions (`getToolbarModule`, `getViewportModule`, etc.)
### Viewport Customization
Custom viewports extend base Cornerstone viewport:
- Override render methods for custom overlays
- Implement measurement tracking
- Add viewport-specific tools and interactions
### Service Integration
Register services in extension's `servicesManager.registerService` and access via:
```javascript
const { MeasurementService } = servicesManager.services;
```
### Creating stores
To create a store, you can make one in your extension's `stores/` directory, and you can follow the example of an existing store such as `useLutPresentationStore.ts` or `useSynchronizersStore.ts`.
### Creating hooks
To create a hook, you can make one in your extension's `hooks/` directory, and you can follow the example of an existing hook such as `usePatientInfo.tsx`.
### Creating providers
To create a provider, you can make one in your extension's `providers/` or `contexts/` directory, and you can follow the example of an existing provider such as `ViewportGridProvider.tsx`.
### Adding new icons
To add a new icon, you can add it to the `icons/` directory, then register the icon using `import { addIcon } from '@ohif/extension-default/src/utils'`
### Creating synchronizers
You can create custom synchronizers and place them in the `synchronizers/` directory, you can follow the example of `frameViewSynchronizer.ts`
### Utilites
Any new utilites should be placed in the `utils/` directory, and you can follow the example of `formatPN.ts`
### Commands
Commands are created in the commandsModule of the extension, for example the cornerstone extension has `commandsModule.tsx`, sometimes its also named `getCommandsModule.tsx.`
### Overriding OHIF Components
To override an OHIF component, you can create a new component in your extension's `components/` directory, then import it instead of the original ui-next component.
### Mode layout
The layoutTemplate is a function that returns a layout object, you can follow the example of `longitudinal/src/index.ts`. This would be helpful when you need to override a component as you can know where to look for the original component.
### Pub Sub
Always prioritrize pub sub, by calling a services subscribe over useEffects as it's more reliable, for example
```ts
useEffect(() => {
const subscriptions = [
cornerstoneViewportService.subscribe(EVENTS.VIEWPORT_DATA_CHANGED, handleViewportDataChanged),
syncGroupService.subscribe(EVENTS.VIEWPORT_REMOVED, onHotKeyRemoval),
syncGroupService.subscribe(EVENTS.VIEWPORT_ADDED, onHotKeyAddition),
];
return () => {
subscriptions.forEach(({ unsubscribe }) => unsubscribe());
};
}, []);
```
### Never modify core architecture
Do not modify the core and always find a way to implement the solution via the extensions and modes, only modify core as a last resort if all other fail or there's an architectural constraint.
## Skills
The `ohif-test-agent` skill (Playwright E2E test guidance) lives at `.agents/skills/ohif-test-agent/`.
## Configuration
### Plugin Configuration
Extensions are auto-discovered via `pluginConfig.json` and dynamically imported during build.
## Medical Imaging Specifics
### DICOM Support
- Multi-format: CT, MRI, X-Ray, Mammography, Ultrasound
- SOP Class handlers for specialized DICOM types (RT, SEG, SR)
- DICOMweb protocol for web-based image retrieval
### Hanging Protocols
Define how images are arranged and displayed:
- Located in `hps/` directories
- JSON configuration with viewport rules
- Support for priors comparison and multi-monitor layouts
### Measurement Tools
- Cornerstone Tools integration for annotations
- Bidirectional measurements, polylines, annotations
- Export capabilities (DICOM SR, CSV reports)
- AI-assisted measurements via ONNX models

7981
CHANGELOG.md Normal file

File diff suppressed because it is too large Load Diff

76
CODE_OF_CONDUCT.md Normal file
View File

@ -0,0 +1,76 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at danny.ri.brown+OHIFcoc@gmail.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq

1
CONTRIBUTING.md Normal file
View File

@ -0,0 +1 @@
See our contributing guidelines at [`https://docs.ohif.org`](https://docs.ohif.org/development/contributing.html)

297
DATACITATION.md Normal file
View File

@ -0,0 +1,297 @@
# OHIF public demo data sets
The OHIF Viewer's public demo page, available at https://viewer.ohif.org/, uses publicly anonymized demo datasets.
These datasets were mostly obtained from the [NIH NCI Imaging Data Commons](https://datacommons.cancer.gov/repository/imaging-data-commons)
and [NIH NCI TCIA](https://www.cancerimagingarchive.net/). Before listing the datasets,
we would like to extend a special thank you to all groups who have made their datasets publicly available.
Without them, we would not have been able to create this demo page.
Please find below the list of datasets used on the demo page, along with their respective citations.
## Platforms
### NIH NCI IDC
- Fedorov, A., Longabaugh, W.J., Pot, D., Clunie, D.A., Pieper, S., Aerts, H.J., Homeyer, A., Lewis, R., Akbarzadeh, A., Bontempi, D. and Clifford, W., 2021. NCI imaging data commons. Cancer research, 81(16), p.4188.
### NIH NCI TCIA
- Clark, K., Vendt, B., Smith, K., Freymann, J., Kirby, J., Koppel, P., Moore, S., Phillips, S., Maffitt, D., Pringle, M., Tarbox, L., & Prior, F. (2013). The Cancer Imaging Archive (TCIA): Maintaining and Operating a Public Information Repository. Journal of Digital Imaging, 26(6), 10451057. https://doi.org/10.1007/s10278-013-9622-7
## Datasets
Below you can find the StudyInstanceUID of the studies that are used in the demo page along with their citations.
### 1.3.6.1.4.1.14519.5.2.1.267424821384663813780850856506829388886
Segmentation of Vestibular Schwannoma from Magnetic Resonance Imaging: An Open Annotated Dataset and Baseline Algorithm (Vestibular-Schwannoma-SEG)
- Shapey, J., Kujawa, A., Dorent, R., Wang, G., Bisdas, S., Dimitriadis, A., Grishchuck, D., Paddick, I., Kitchen, N., Bradford, R., Saeed, S., Ourselin, S., & Vercauteren, T. (2021). Segmentation of Vestibular Schwannoma from Magnetic Resonance Imaging: An Open Annotated Dataset and Baseline Algorithm [Data set]. The Cancer Imaging Archive. https://doi.org/10.7937/TCIA.9YTJ-5Q73
- Shapey, J., Kujawa, A., Dorent, R., Wang, G., Dimitriadis, A., Grishchuk, D., Paddick, I., Kitchen, N., Bradford, R., Saeed, S. R., Bisdas, S., Ourselin, S., & Vercauteren, T. (2021). Segmentation of vestibular schwannoma from MRI, an open annotated dataset and baseline algorithm. In Scientific Data (Vol. 8, Issue 1). Springer Science and Business Media LLC. https://doi.org/10.1038/s41597-021-01064-w
### 1.3.6.1.4.1.14519.5.2.1.7009.2403.334240657131972136850343327463
### 1.3.6.1.4.1.14519.5.2.1.7009.2403.871108593056125491804754960339
ACRIN-NSCLC-FDG-PET (ACRIN 6668)
- Kinahan, P., Muzi, M., Bialecki, B., Herman, B., & Coombs, L. (2019). Data from the ACRIN 6668 Trial NSCLC-FDG-PET (Version 2) [Data set]. The Cancer Imaging Archive. https://doi.org/10.7937/tcia.2019.30ilqfcl
- Machtay, M., Duan, F., Siegel, B. A., Snyder, B. S., Gorelick, J. J., Reddin, J. S., Munden, R., Johnson, D. W., Wilf, L. H., DeNittis, A., Sherwin, N., Cho, K. H., Kim, S., Videtic, G., Neumann, D. R., Komaki, R., Macapinlac, H., Bradley, J. D., & Alavi, A. (2013). Prediction of Survival by [18F]Fluorodeoxyglucose Positron Emission Tomography in Patients With Locally Advanced NonSmall-Cell Lung Cancer Undergoing Definitive Chemoradiation Therapy: Results of the ACRIN 6668/RTOG 0235 Trial. In Journal of Clinical Oncology (Vol. 31, Issue 30, pp. 38233830). American Society of Clinical Oncology (ASCO). https://doi.org/10.1200/jco.2012.47.5947
### 2.25.103659964951665749659160840573802789777
The Cancer Genome Atlas Glioblastoma Multiforme Collection (TCGA-GBM)
- Scarpace, L., Mikkelsen, T., Cha, S., Rao, S., Tekchandani, S., Gutman, D., Saltz, J. H., Erickson, B. J., Pedano, N., Flanders, A. E., Barnholtz-Sloan, J., Ostrom, Q., Barboriak, D., & Pierce, L. J. (2016). The Cancer Genome Atlas Glioblastoma Multiforme Collection (TCGA-GBM) (Version 4) [Data set]. The Cancer Imaging Archive. https://doi.org/10.7937/K9/TCIA.2016.RNYFUYE9
### 1.3.6.1.4.1.14519.5.2.1.256467663913010332776401703474716742458
Abdominal or pelvic enhanced CT images within 10 days before surgery of 230 patients with stage II colorectal cancer (StageII-Colorectal-CT)
- Tong T., Li M. (2022) Abdominal or pelvic enhanced CT images within 10 days before surgery of 230 patients with stage II colorectal cancer (StageII-Colorectal-CT) [Dataset]. The Cancer Imaging Archive. DOI: https://doi.org/10.7937/p5k5-tg43
- Li, M., Gong, J., Bao, Y., Huang, D., Peng, J., & Tong, T. (2022). Special issue “The advance of solid tumor research in China”: Prognosis prediction for stage II colorectal cancer by fusing computed tomography radiomics and deeplearning features of primary lesions and peripheral lymph nodes. In International Journal of Cancer. Wiley. https://doi.org/10.1002/ijc.34053
### 1.3.6.1.4.1.14519.5.2.1.3023.4024.215308722288168917637555384485
The Cancer Genome Atlas Sarcoma Collection (TCGA-SARC)
- Roche, C., Bonaccio, E., & Filippini, J. (2016). The Cancer Genome Atlas Sarcoma Collection (TCGA-SARC) (Version 3) [Data set]. The Cancer Imaging Archive. https://doi.org/10.7937/K9/TCIA.2016.CX6YLSUX
### 1.3.6.1.4.1.14519.5.2.1.4792.2001.105216574054253895819671475627
BREAST-DIAGNOSIS
- Bloch, B. Nicolas, Jain, Ashali, & Jaffe, C. Carl. (2015). BREAST-DIAGNOSIS [Data set]. The Cancer Imaging Archive. http://doi.org/10.7937/K9/TCIA.2015.SDNRQXXR
### 1.3.6.1.4.1.14519.5.2.1.1706.8374.643249677828306008300337414785
Multimodality annotated HCC cases with and without advanced imaging segmentation (HCC-TACE-Seg)
- Moawad, A. W., Fuentes, D., Morshid, A., Khalaf, A. M., Elmohr, M. M., Abusaif, A., Hazle, J. D., Kaseb, A. O., Hassan, M., Mahvash, A., Szklaruk, J., Qayyom, A., & Elsayes, K. (2021). Multimodality annotated HCC cases with and without advanced imaging segmentation [Data set]. The Cancer Imaging Archive. https://doi.org/10.7937/TCIA.5FNA-0924
- Morshid, A., Elsayes, K. M., Khalaf, A. M., Elmohr, M. M., Yu, J., Kaseb, A. O., Hassan, M., Mahvash, A., Wang, Z., Hazle, J. D., & Fuentes, D. (2019). A Machine Learning Model to Predict Hepatocellular Carcinoma Response to Transcatheter Arterial Chemoembolization. Radiology: Artificial Intelligence, 1(5), e180021. https://doi.org/10.1148/ryai.2019180021
### 1.3.6.1.4.1.14519.5.2.1.1188.2803.137585363493444318569098508293
Ultrasound data of a variety of liver masses (B-mode-and-CEUS-Liver)
- Eisenbrey, J., Lyshchik, A., & Wessner, C. (2021). Ultrasound data of a variety of liver masses [Data set]. The Cancer Imaging Archive. DOI: https://doi.org/10.7937/TCIA.2021.v4z7-tc39
### 1.3.6.1.4.1.32722.99.99.62087908186665265759322018723889952421
NSCLC-Radiomics
- Aerts, H. J. W. L., Wee, L., Rios Velazquez, E., Leijenaar, R. T. H., Parmar, C., Grossmann, P., Carvalho, S., Bussink, J., Monshouwer, R., Haibe-Kains, B., Rietveld, D., Hoebers, F., Rietbergen, M. M., Leemans, C. R., Dekker, A., Quackenbush, J., Gillies, R. J., Lambin, P. (2019). Data From NSCLC-Radiomics (version 4) [Data set]. The Cancer Imaging Archive. https://doi.org/10.7937/K9/TCIA.2015.PF0M9REI
- Aerts, H. J. W. L., Velazquez, E. R., Leijenaar, R. T. H., Parmar, C., Grossmann, P., Carvalho, S., Bussink, J., Monshouwer, R., Haibe-Kains, B., Rietveld, D., Hoebers, F., Rietbergen, M. M., Leemans, C. R., Dekker, A., Quackenbush, J., Gillies, R. J., Lambin, P. (2014, June 3). Decoding tumour phenotype by noninvasive imaging using a quantitative radiomics approach. Nature Communications. Nature Publishing Group. https://doi.org/10.1038/ncomms5006 (link)
### 1.3.6.1.4.1.14519.5.2.1.3671.4754.298665348758363466150039312520
QIN-PROSTATE-Repeatability
- Fedorov, A; Schwier, M; Clunie, D; Herz, C; Pieper, S; Kikinis, R; Tempany, C; Fennessy, F. (2018). Data From QIN-PROSTATE-Repeatability. The Cancer Imaging Archive. DOI: 10.7937/K9/TCIA.2018.MR1CKGND
- Fedorov A, Vangel MG, Tempany CM, Fennessy FM. Multiparametric Magnetic Resonance Imaging of the Prostate: Repeatability of Volume and Apparent Diffusion Coefficient Quantification. Investigative Radiology. 52, 538546 (2017). DOI: 10.1097/RLI.0000000000000382
- Fedorov, A., Schwier, M., Clunie, D., Herz, C., Pieper, S., Kikinis,R., Tempany, C. & Fennessy, F. An annotated test-retest collection of prostate multiparametric MRI. Scientific Data 5, 180281 (2018). DOI:
### 2.25.141277760791347900862109212450152067508
The Clinical Proteomic Tumor Analysis Consortium Clear Cell Renal Cell Carcinoma Collection (CPTAC-CCRCC)
- National Cancer Institute Clinical Proteomic Tumor Analysis Consortium (CPTAC). (2018). The Clinical Proteomic Tumor Analysis Consortium Clear Cell Renal Cell Carcinoma Collection (CPTAC-CCRCC) (Version 10) [Data set]. The Cancer Imaging Archive. https://doi.org/10.7937/K9/TCIA.2018.OBLAMN27
- The CPTAC program requests that publications using data from this program include the following statement: “Data used in this publication were generated by the National Cancer Institute Clinical Proteomic Tumor Analysis Consortium (CPTAC).”
### 2.25.275741864483510678566144889372061815320
National Lung Screening Trial
- National Lung Screening Trial Research Team. (2013). Data from the National Lung Screening Trial (NLST) [Data set]. The Cancer Imaging Archive. https://doi.org/10.7937/TCIA.HMQ8-J677
- National Lung Screening Trial Research Team*; Aberle DR, Adams AM, Berg CD, Black WC, Clapp JD, Fagerstrom RM, Gareen IF, Gatsonis C, Marcus PM, Sicks JD (2011). Reduced Lung-Cancer Mortality with Low-Dose Computed Tomographic Screening. New England Journal of Medicine, 365(5), 395409. https://doi.org/10.1056/nejmoa1102873
### 1.3.6.1.4.1.14519.5.2.1.99.1071.26968527900428638961173806140069
Stony Brook University COVID-19 Positive Cases (COVID-19-NY-SBU)
- Saltz, J., Saltz, M., Prasanna, P., Moffitt, R., Hajagos, J., Bremer, E., Balsamo, J., & Kurc, T. (2021). Stony Brook University COVID-19 Positive Cases [Data set]. The Cancer Imaging Archive. https://doi.org/10.7937/TCIA.BBAG-2923
### 2.16.840.1.114362.1.11972228.22789312658.616067305.306.2
https://data.kitware.com/
### 1.2.276.0.7230010.3.1.2.296485376.1.1665793212.499772
### 2.25.269859997690759739055099378767846712697
### 1.3.6.1.4.1.14519.5.2.1.5099.8010.217836670708542506360829799868
### 1.3.6.1.4.1.14519.5.2.1.4792.2001.232252967813565730694525674696
### 1.3.6.1.4.1.14519.5.2.1.4792.2001.105216574054253895819671475627
### 1.3.6.1.4.1.5962.99.1.1117.5035.1620319789811.1.2.1
### 1.3.6.1.4.1.5962.99.1.1123.9231.1620326176300.1.2.1
### 1.3.6.1.4.1.5962.99.1.1126.3483.1620329455972.1.2.1
https://github.com/ImagingInformatics/hackathon-images
### 2.16.124.113543.6004.101.103.20021117.162333.1
### 2.16.124.113543.6004.101.103.20021117.190619.1
### 2.16.124.113543.6004.101.103.20021117.123455.1
### 2.16.124.113543.6004.101.103.20021117.061159.1
https://www.aapm.org/
### 1.2.840.113619.2.30.1.1762295590.1623.978668949.886
### 1.2.276.0.7230010.3.1.2.447481088.1.1669202398.851612
Custom data SPECT, specifically I123-FP-CIT (DaTSCAN) SPECT, evaluates the dopaminergic system to diagnose Parkinson's disease, especially when tremor symptoms are unclear. It helps distinguish Parkinson's disease from treatment-related tremor.
### 1.3.6.1.4.1.9328.50.1.54652
https://www.cancerimagingarchive.net/collection/rider-pilot/
Lung Image Database Consortium (LIDC). (2023) RIDER Pilot [Data set]. The Cancer Imaging Archive (TCIA). https://doi.org/10.7937/m87f-mz83
### 1.3.6.1.4.1.14519.5.2.1.331759366792756327296606233801322964986
Mayr, N., Yuh, W. T. C., Bowen, S., Harkenrider, M., Knopp, M. V., Lee, E. Y.-P., Leung, E., Lo, S. S., Small Jr., W., & Wolfson, A. H. (2023). Cervical Cancer Tumor Heterogeneity: Serial Functional and Molecular Imaging Across the Radiation Therapy Course in Advanced Cervical Cancer (Version 1) [Data set]. The Cancer Imaging Archive. https://doi.org/10.7937/ERZ5-QZ59
https://www.cancerimagingarchive.net/collection/cc-tumor-heterogeneity/
### 1.3.6.1.4.1.14519.5.2.1.297577087050970310787702792940607009472
Eslick, E. M., Kipritidis, J., Gradinscak, D., Stevens, M. J., Bailey, D. L., Harris, B., Booth, J. T., & Keall, P. J. (2022). CT Ventilation as a functional imaging modality for lung cancer radiotherapy (CT-vs-PET-Ventilation-Imaging) (Version 1) [Data set]. The Cancer Imaging Archive. https://doi.org/10.7937/3ppx-7s22
https://www.cancerimagingarchive.net/collection/ct-vs-pet-ventilation-imaging/
### 1.3.6.1.4.1.14519.5.2.1.2103.7010.634114621738943599785009586807
### 1.3.6.1.4.1.14519.5.2.1.2103.7010.135953723682765205394176991681
Huang, W., Tudorica, A., Chui, S., Kemmer, K., Naik, A., Troxell, M., Oh, K., Roy, N., Afzal, A., & Holtorf, M. (2014). Variations of dynamic contrast-enhanced magnetic resonance imaging in evaluation of breast cancer therapy response: a multicenter data analysis challenge (QIN Breast DCE-MRI) (Version 2) [Data set]. The Cancer Imaging Archive. https://doi.org/10.7937/k9/tcia.2014.a2n1ixox
https://www.cancerimagingarchive.net/collection/qin-breast-dce-mri/
### 1.3.6.1.4.1.14519.5.2.1.1.24766180081901755714059656629507905556
Cancer Moonshot Biobank. (2023). Cancer Moonshoot Biobank Acute Myeloid Leukemia (CMB-AML) (Version 4) [Dataset]. The Cancer Imaging Archive. https://doi.org/10.7937/PCTE-6M66
https://www.cancerimagingarchive.net/collection/cmb-aml/
### 1.3.6.1.4.1.14519.5.2.1.3098.5025.285242291560760827564488897577
https://www.cancerimagingarchive.net/collection/anti-pd-1_lung/
Madhavi, P., Patel, S., & Tsao, A. S. (2019). Data from Anti-PD-1 Immunotherapy Lung [Data set]. The Cancer Imaging Archive. DOI: 10.7937/tcia.2019.zjjwb9ip
### 1.3.6.1.4.1.14519.5.2.1.1.84416332615988066829602832830236187384
https://www.cancerimagingarchive.net/collection/cmb-pca/
Cancer Moonshot Biobank. (2022). Cancer Moonshot Biobank Prostate Cancer Collection (CMB-PCA) (Version 7) [Dataset]. The Cancer Imaging Archive. https://doi.org/10.7937/25T7-6Y12
### 1.3.6.1.4.1.32722.99.99.239341353911714368772597187099978969331
Aerts, H. J. W. L., Wee, L., Rios Velazquez, E., Leijenaar, R. T. H., Parmar, C., Grossmann, P., Carvalho, S., Bussink, J., Monshouwer, R., Haibe-Kains, B., Rietveld, D., Hoebers, F., Rietbergen, M. M., Leemans, C. R., Dekker, A., Quackenbush, J., Gillies, R. J., Lambin, P. (2014). Data From NSCLC-Radiomics (version 4) [Data set]. The Cancer Imaging Archive. https://doi.org/10.7937/K9/TCIA.2015.PF0M9REI
https://www.cancerimagingarchive.net/collection/nsclc-radiomics/
### 1.3.6.1.4.1.14519.5.2.1.7085.2626.494695569589117268722281491772
https://www.cancerimagingarchive.net/collection/cptac-ucec/
National Cancer Institute Clinical Proteomic Tumor Analysis Consortium (CPTAC). (2019). The Clinical Proteomic Tumor Analysis Consortium Uterine Corpus Endometrial Carcinoma Collection (CPTAC-UCEC) (Version 12) [Data set]. The Cancer Imaging Archive. https://doi.org/10.7937/K9/TCIA.2018.3R3JUISW
### 1.3.6.1.4.1.14519.5.2.1.207544490797667703011829289839681390478
https://www.cancerimagingarchive.net/collection/remind/
Juvekar, P., Dorent, R., Kögl, F., Torio, E., Barr, C., Rigolo, L., Galvin, C., Jowkar, N., Kazi, A., Haouchine, N., Cheema, H., Navab, N., Pieper, S., Wells, W. M., Bi, W. L., Golby, A., Frisken, S., & Kapur, T. (2023). The Brain Resection Multimodal Imaging Database (ReMIND) (Version 1) [dataset]. The Cancer Imaging Archive. https://doi.org/10.7937/3RAG-D070
### 1.3.12.2.1107.5.1.4.60175.30000008042114404745300000010
Gavrielides, M. A., Kinnard, L. M., Myers, K. J., Peregoy, J., Pritchard, W. F., Zeng, R., Esparza, J., Karanian, J., & Petrick, N. (2015). Data From Phantom FDA [Data set]. The Cancer Imaging Archive. https://doi.org/10.7937/k9/TCIA.2015.orbjkmux
https://www.cancerimagingarchive.net/collection/phantom-fda/
### 1.3.6.1.4.1.14519.5.2.1.6834.5010.992793141464713669479982159310
https://www.cancerimagingarchive.net/collection/4d-lung/
Hugo, G. D., Weiss, E., Sleeman, W. C., Balik, S., Keall, P. J., Lu, J., & Williamson, J. F. (2016). Data from 4D Lung Imaging of NSCLC Patients (Version 2) [Data set]. The Cancer Imaging Archive. https://doi.org/10.7937/K9/TCIA.2016.ELN8YGLE
### 1.3.6.1.4.1.9328.50.17.15423521354819720574322014551955370036
https://www.cancerimagingarchive.net/collection/rider-lung-pet-ct/
Muzi P, Wanner M, & Kinahan P. (2015). Data From RIDER Lung PET-CT. The Cancer Imaging Archive. https://doi.org/10.7937/k9/tcia.2015.ofip7tvm
### 1.3.6.1.4.1.14519.5.2.1.9823.1001.134394060407147891170882809392
https://www.cancerimagingarchive.net/collection/prostate-mri/
Choyke P, Turkbey B, Pinto P, Merino M, Wood B. (2016). Data From PROSTATE-MRI. The Cancer Imaging Archive. http://doi.org/10.7937/K9/TCIA.2016.6046GUDv
### 1.3.6.1.4.1.14519.5.2.1.191696062987463500085282581898315738844
https://www.cancerimagingarchive.net/collection/upenn-gbm/
Bakas, S., Sako, C., Akbari, H., Bilello, M., Sotiras, A., Shukla, G., Rudie, J. D., Flores Santamaria, N., Fathi Kazerooni, A., Pati, S., Rathore, S., Mamourian, E., Ha, S. M., Parker, W., Doshi, J., Baid, U., Bergman, M., Binder, Z. A., Verma, R., … Davatzikos, C. (2021). Multi-parametric magnetic resonance imaging (mpMRI) scans for de novo Glioblastoma (GBM) patients from the University of Pennsylvania Health System (UPENN-GBM) (Version 2) [Data set]. The Cancer Imaging Archive. https://doi.org/10.7937/TCIA.709X-DN49
### 1.3.6.1.4.1.14519.5.2.1.4792.2001.921758700577562664959693695481
https://www.cancerimagingarchive.net/collection/breast-diagnosis/
Bloch, B. Nicolas, Jain, Ashali, & Jaffe, C. Carl. (2015). BREAST-DIAGNOSIS [Data set]. The Cancer Imaging Archive. http://doi.org/10.7937/K9/TCIA.2015.SDNRQXXR
### 1.3.6.1.4.1.14519.5.2.1.1620.1225.189514895974227080410265976065
Comstock, C. E., Gatsonis, C., Newstead, G. M., Snyder, B. S., Gareen, I. F., Bergin, J. T., Rahbar, H., Sung, J. S., Jacobs, C., Harvey, J. A., Nicholson, M. H., Ward, R. C., Holt, J., Prather, A., Miller, K. D., Schnall, M. D., & Kuhl, C. K. (2023). Abbreviated Breast MRI and Digital Tomosynthesis Mammography in Screening Women With Dense Breasts (EA1141) (Version 1) [dataset]. The Cancer Imaging Archive. https://doi.org/10.7937/2BAS-HR33
https://www.cancerimagingarchive.net/collection/ea1141/
### 1.2.276.0.7230010.3.1.2.2155604110.4180.1021041295.21
From OFFIS DICOM-Team
https://www.offis.de/
OFFIS DICOM-Team

89
Dockerfile Normal file
View File

@ -0,0 +1,89 @@
# syntax=docker/dockerfile:1.7-labs
# This dockerfile is used to publish the `ohif/app` image on dockerhub.
#
# It's a good example of how to build our static application and package it
# with a web server capable of hosting it as static content.
#
# docker build
# --------------
# If you would like to use this dockerfile to build and tag an image, make sure
# you set the context to the project's root directory:
# https://docs.docker.com/engine/reference/commandline/build/
#
#
# SUMMARY
# --------------
# This dockerfile has two stages:
#
# 1. Building the React application for production
# 2. Setting up our Nginx (Alpine Linux) image w/ step one's output
#
# Stage 1: Build the application
# docker build -t ohif/viewer:latest .
# Copy Files
FROM node:24.15.0-slim as builder
RUN apt-get update && apt-get install -y --no-install-recommends build-essential python3 \
&& rm -rf /var/lib/apt/lists/*
RUN npm install -g pnpm@11
RUN mkdir /usr/src/app
WORKDIR /usr/src/app
ENV PATH=/usr/src/app/node_modules/.bin:$PATH
# Copy package manifests for install caching. preinstall.js is included because
# the root package.json's "preinstall" lifecycle script (node preinstall.js)
# runs during `pnpm install` below -- before the full source is copied -- so the
# script file must already be present or install fails with MODULE_NOT_FOUND.
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc preinstall.js ./
COPY --parents ./extensions/*/package.json ./modes/*/package.json ./platform/*/package.json ./
# Run the install before copying the rest of the files.
# Keep --no-frozen-lockfile here (unlike CI): .dockerignore excludes
# platform/docs, so the lockfile's docs importer has no manifest in the build
# context and a frozen install would fail. pnpm reconciles (drops docs) instead.
RUN pnpm install --no-frozen-lockfile
# Copy the local directory
COPY --link --exclude=pnpm-lock.yaml --exclude=package.json --exclude=Dockerfile . .
# Build here
# After install it should hopefully be stable until the local directory changes
ENV QUICK_BUILD true
# ENV GENERATE_SOURCEMAP=false
ARG APP_CONFIG=config/default.js
ARG PUBLIC_URL=/
ENV PUBLIC_URL=${PUBLIC_URL}
RUN pnpm run show:config
RUN pnpm run build
# Precompress files
RUN chmod u+x .docker/compressDist.sh
RUN ./.docker/compressDist.sh
# Stage 2: Bundle the built application into a Docker container
# which runs Nginx using Alpine Linux
FROM nginxinc/nginx-unprivileged:1.27-alpine as final
#RUN apk add --no-cache bash
ARG PUBLIC_URL=/
ENV PUBLIC_URL=${PUBLIC_URL}
ARG PORT=80
ENV PORT=${PORT}
RUN rm /etc/nginx/conf.d/default.conf
USER nginx
COPY --chown=nginx:nginx .docker/Viewer-v3.x /usr/src
RUN chmod 777 /usr/src/entrypoint.sh
COPY --from=builder /usr/src/app/platform/app/dist /usr/share/nginx/html${PUBLIC_URL}
# Copy paths that are renamed/redirected generally
# Microscopy libraries depend on root level include, so must be copied
COPY --from=builder /usr/src/app/platform/app/dist/dicom-microscopy-viewer /usr/share/nginx/html/dicom-microscopy-viewer
# In entrypoint.sh, app-config.js might be overwritten, so chmod it to be writeable.
# The nginx user cannot chmod it, so change to root.
USER root
RUN chown -R nginx:nginx /usr/share/nginx/html && chmod -R 777 /usr/share/nginx/html
USER nginx
ENTRYPOINT ["/usr/src/entrypoint.sh"]
CMD ["nginx", "-g", "daemon off;"]

View File

@ -1,6 +1,6 @@
The MIT License (MIT)
MIT License
Copyright (c) 2015 Open Health Imaging Foundation
Copyright (c) 2018 Open Health Imaging Foundation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

524
README.md
View File

@ -1,211 +1,338 @@
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<div align="center">
<h1>ohif-viewer</h1>
<p><strong>ohif-viewer</strong> is a zero-footprint medical image viewer provided by the <a href="http://ohif.org/">Open Health Imaging Foundation (OHIF)</a>. It is a configurable and extensible progressive web application with out-of-the-box support for image archives which support <a href="https://www.dicomstandard.org/dicomweb/">DICOMweb</a>.</p>
<h1>OHIF Medical Imaging Viewer</h1>
<p><strong>The OHIF Viewer</strong> is a zero-footprint medical image viewer
provided by the <a href="https://ohif.org/">Open Health Imaging Foundation (OHIF)</a>. It is a configurable and extensible progressive web application with out-of-the-box support for image archives which support <a href="https://www.dicomstandard.org/using/dicomweb/">DICOMweb</a>.</p>
</div>
<div align="center">
<a href="https://docs.ohif.org/"><strong>Read The Docs</strong></a> |
<a href="https://github.com/OHIF/Viewers/tree/master/docs/latest">Edit the docs</a>
<a href="https://docs.ohif.org/"><strong>Read The Docs</strong></a>
</div>
<div align="center">
<a href="https://docs.ohif.org/demo">Demo</a> |
<a href="https://ohif.canny.io/">Roadmap</a> |
<a href="https://react.ohif.org/">Component Library</a>
<a href="https://viewer.ohif.org/">Live Demo</a> |
<a href="https://ui.ohif.org/">Component Library</a>
</div>
<div align="center">
📰 <a href="https://ohif.org/news/"><strong>Join OHIF Newsletter</strong></a> 📰
</div>
<div align="center">
📰 <a href="https://ohif.org/news/"><strong>Join OHIF Newsletter</strong></a> 📰
</div>
<hr />
[![CircleCI][circleci-image]][circleci-url]
[![codecov][codecov-image]][codecov-url]
[![All Contributors](https://img.shields.io/badge/all_contributors-6-orange.svg?style=flat-square)](#contributors)
[![code style: prettier][prettier-image]][prettier-url]
[![semantic-release][semantic-image]][semantic-url]
[![NPM version][npm-version-image]][npm-url]
[![NPM downloads][npm-downloads-image]][npm-url]
[![Pulls][docker-pulls-img]][docker-image-url]
[![MIT License][license-image]][license-url]
<!-- markdownlint-enable -->
[![This project is using Percy.io for visual regression testing.][percy-image]](percy-url)
<!-- [![NPM downloads][npm-downloads-image]][npm-url] -->
<!-- [![Pulls][docker-pulls-img]][docker-image-url] -->
<!-- [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FOHIF%2FViewers.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2FOHIF%2FViewers?ref=badge_shield) -->
<!-- [![Netlify Status][netlify-image]][netlify-url] -->
<!-- [![CircleCI][circleci-image]][circleci-url] -->
<!-- [![codecov][codecov-image]][codecov-url] -->
<!-- [![All Contributors](https://img.shields.io/badge/all_contributors-10-orange.svg?style=flat-square)](#contributors) -->
<!-- prettier-ignore-end -->
> ATTENTION: If you are looking for Version 1 (the Meteor Version) of this
> repository, it lives on
> [the `v1.x` branch](https://github.com/OHIF/Viewers/tree/v1.x)
## Why?
| | | |
| :-: | :--- | :--- |
| <img src="https://github.com/OHIF/Viewers/blob/master/platform/docs/docs/assets/img/demo-measurements.webp?raw=true" alt="Measurement tracking" width="350"/> | Measurement Tracking | [Demo](https://viewer.ohif.org/viewer?StudyInstanceUIDs=1.3.6.1.4.1.25403.345050719074.3824.20170125095438.5) |
| <img src="https://github.com/OHIF/Viewers/blob/master/platform/docs/docs/assets/img/demo-segmentation.webp?raw=true" alt="Segmentations" width="350"/> | Labelmap Segmentations | [Demo](https://viewer.ohif.org/viewer?StudyInstanceUIDs=1.3.12.2.1107.5.2.32.35162.30000015050317233592200000046) |
| <img src="https://github.com/OHIF/Viewers/blob/master/platform/docs/docs/assets/img/demo-ptct.webp?raw=true" alt="Hanging Protocols" width="350"/> | Fusion and Custom Hanging protocols | [Demo](https://viewer.ohif.org/tmtv?StudyInstanceUIDs=1.3.6.1.4.1.14519.5.2.1.7009.2403.334240657131972136850343327463) |
| <img src="https://github.com/OHIF/Viewers/blob/master/platform/docs/docs/assets/img/demo-volume-rendering.webp?raw=true" alt="Volume Rendering" width="350"/> | Volume Rendering | [Demo](https://viewer.ohif.org/viewer?StudyInstanceUIDs=1.3.6.1.4.1.25403.345050719074.3824.20170125095438.5&hangingprotocolId=mprAnd3DVolumeViewport) |
| <img src="https://github.com/OHIF/Viewers/blob/master/platform/docs/docs/assets/img/demo-pdf.webp?raw=true" alt="PDF" width="350"/> | PDF | [Demo](https://viewer.ohif.org/viewer?StudyInstanceUIDs=2.25.317377619501274872606137091638706705333) |
| <img src="https://github.com/OHIF/Viewers/blob/master/platform/docs/docs/assets/img/demo-rtstruct.webp?raw=true" alt="RTSTRUCT" width="350"/> | RT STRUCT | [Demo](https://viewer.ohif.org/viewer?StudyInstanceUIDs=1.3.6.1.4.1.5962.99.1.2968617883.1314880426.1493322302363.3.0) |
| <img src="https://github.com/OHIF/Viewers/blob/master/platform/docs/docs/assets/img/demo-4d.webp?raw=true" alt="4D" width="350"/> | 4D | [Demo](https://viewer.ohif.org/dynamic-volume?StudyInstanceUIDs=2.25.232704420736447710317909004159492840763) |
| <img src="https://github.com/OHIF/Viewers/blob/master/platform/docs/docs/assets/img/demo-video.webp?raw=true" alt="VIDEO" width="350"/> | Video | [Demo](https://viewer.ohif.org/viewer?StudyInstanceUIDs=2.25.96975534054447904995905761963464388233) |
| <img src="https://github.com/OHIF/Viewers/blob/master/platform/docs/docs/assets/img/microscopy.webp?raw=true" alt="microscopy" width="350"/> | Slide Microscopy | [Demo](https://viewer.ohif.org/microscopy?StudyInstanceUIDs=2.25.141277760791347900862109212450152067508) |
| <img src="https://github.com/OHIF/Viewers/blob/master/platform/docs/docs/assets/img/demo-ecg.webp?raw=true" alt="ECG" width="350"/> | ECG Waveform | [Demo](https://viewer-dev.ohif.org/viewer?StudyInstanceUIDs=2.25.209974489360710696739324151261716440238) |
Building a web based medical imaging viewer from scratch is time intensive, hard
to get right, and expensive. Instead of re-inventing the wheel, you can use the
OHIF Viewer as a rock solid platform to build on top of. The Viewer is a
[React][react-url] [Progressive Web Application][pwa-url] that can be embedded
in existing applications via it's [packaged source
(ohif-viewer)][ohif-viewer-url] or hosted stand-alone. The Viewer exposes
[configuration][configuration-url] and [extensions][extensions-url] to support
workflow customization and advanced functionality at common integration points.
## About
If you're interested in using the OHIF Viewer, but you're not sure it supports
your use case [check out our docs](https://docs.ohif.org/). Still not sure, or
you would like to propose new features? Don't hesitate to
[create an issue](https://github.com/OHIF/Viewers/issues) or open a pull
request.
The OHIF Viewer can retrieve
and load images from most sources and formats, render sets in 2D, 3D, and
reconstructed representations; allows for the manipulation, annotation, and
serialization of observations; supports internationalization, OpenID Connect,
offline use, hotkeys, and many more features.
## Getting Started
Almost everything offers some degree of customization and configuration. If it
doesn't support something you need, we accept pull requests and have an ever
improving Extension System.
This readme is specific to testing and developing locally. If you're more
interested in production deployment strategies,
[you can check out our documentation on publishing](https://docs.ohif.org/).
## Why Choose Us
Want to play around before you dig in?
[Check out our LIVE Demo](https://viewer.ohif.org/)
### Community & Experience
### Setup
The OHIF Viewer is a collaborative effort that has served as the basis for many
active, production, and FDA Cleared medical imaging viewers. It benefits from
our extensive community's collective experience, and from the sponsored
contributions of individuals, research groups, and commercial organizations.
_Requirements:_
### Built to Adapt
- [NodeJS & NPM](https://nodejs.org/en/download/)
- [Yarn](https://yarnpkg.com/lang/en/docs/install/)
After more than 8-years of integrating with many companies and organizations,
The OHIF Viewer has been rebuilt from the ground up to better address the
varying workflow and configuration needs of its many users. All of the Viewer's
core features are built using its own extension system. The same extensibility
that allows us to offer:
_Steps:_
- 2D and 3D medical image viewing
- Multiplanar Reconstruction (MPR)
- Maximum Intensity Project (MIP)
- Whole slide microscopy viewing
- PDF and Dicom Structured Report rendering
- Segmentation rendering as labelmaps and contours
- User Access Control (UAC)
- Context specific toolbar and side panel content
- and many others
1. Fork this repository
2. Clone your forked repository (your `origin`)
Can be leveraged by you to customize the viewer for your workflow, and to add
any new functionality you may need (and wish to maintain privately without
forking).
- `git clone git@github.com:YOUR_GITHUB_USERNAME/Viewers.git`
### Support
3. Add `OHIF/Viewers` as a `remote` repository (the `upstream`)
- [Report a Bug 🐛](https://github.com/OHIF/Viewers/issues/new?assignees=&labels=Community%3A+Report+%3Abug%3A%2CAwaiting+Reproduction&projects=&template=bug-report.yml&title=%5BBug%5D+)
- [Request a Feature 🚀](https://github.com/OHIF/Viewers/issues/new?assignees=&labels=Community%3A+Request+%3Ahand%3A&projects=&template=feature-request.yml&title=%5BFeature+Request%5D+)
- [Ask a Question 🤗](community.ohif.org)
- [Slack Channel](https://join.slack.com/t/cornerstonejs/shared_invite/zt-1r8xb2zau-dOxlD6jit3TN0Uwf928w9Q)
- `git remote add upstream git@github.com:OHIF/Viewers.git`
For commercial support, academic collaborations, and answers to common
questions; please use [Get Support](https://ohif.org/get-support/) to contact
us.
### Developing Locally
## Developing
In your cloned repository's root folder, run:
### Branches
```js
// Restore dependencies
yarn install
#### `master` branch - The latest dev (beta) release
// Stands up local server to host Viewer.
// Viewer connects to our public cloud PACS by default
yarn start
- `master` - The latest dev release
This is typically where the latest development happens. Code that is in the master branch has passed code reviews and automated tests, but it may not be deemed ready for production. This branch usually contains the most recent changes and features being worked on by the development team. It's often the starting point for creating feature branches (where new features are developed) and hotfix branches (for urgent fixes).
Each package is tagged with beta version numbers, and published to npm such as `@ohif/ui@3.6.0-beta.1`
### `release/*` branches - The latest stable releases
Once the `master` branch code reaches a stable, release-ready state, we conduct a comprehensive code review and QA testing. Upon approval, we create a new release branch from `master`. These branches represent the latest stable version considered ready for production.
For example, `release/3.5` is the branch for version 3.5.0, and `release/3.6` is for version 3.6.0. After each release, we wait a few days to ensure no critical bugs. If any are found, we fix them in the release branch and create a new release with a minor version bump, e.g., 3.5.1 in the `release/3.5` branch.
Each package is tagged with version numbers and published to npm, such as `@ohif/ui@3.5.0`. Note that `master` is always ahead of the `release` branch. We publish docker builds for both beta and stable releases.
Here is a schematic representation of our development workflow:
![alt text](platform/docs/docs/assets/img/github-readme-branches-Jun2024.png)
### Requirements
- [Yarn 1.20.0+](https://yarnpkg.com/en/docs/install)
- [Node 18+](https://nodejs.org/en/)
- Yarn Workspaces should be enabled on your machine:
- `yarn config set workspaces-experimental true`
### Getting Started
1. [Fork this repository][how-to-fork]
2. [Clone your forked repository][how-to-clone]
- `git clone https://github.com/YOUR-USERNAME/Viewers.git`
3. Navigate to the cloned project's directory
4. Add this repo as a `remote` named `upstream`
- `git remote add upstream https://github.com/OHIF/Viewers.git`
5. `yarn install --frozen-lockfile` to restore dependencies and link projects
:::danger
In general run `yarn install` with the `--frozen-lockfile` flag to help avoid
supply chain attacks by enforcing reproducible dependencies. That is, if the
`yarn.lock` file is clean and does NOT reference compromised packages, then
no compromised packages should land on your machine by using this flag.
:::
#### To Develop
_From this repository's root directory:_
```bash
# Enable Yarn Workspaces
yarn config set workspaces-experimental true
# Restore dependencies
yarn install --frozen-lockfile
```
For more advanced local development scenarios, like using your own locally
hosted PACS and test data,
[check out our Essential: Getting Started](https://docs.ohif.org/essentials/getting-started.html)
guide.
### Cornerstone3D Integration Testing
### Contributing
OHIF's Playwright end-to-end tests can run against a **CS3D branch** or a
**published CS3D version**, allowing changes that span both repositories to be
validated together before merging.
> Large portions of the Viewer's functionality are maintained in other
> repositories. To get a better understanding of the Viewer's architecture and
> "where things live", read
> [our docs on the Viewer's architecture](https://docs.ohif.org/advanced/architecture.html#diagram)
#### Setting up an integration build
It is notoriously difficult to setup multiple dependent repositories for
end-to-end testing and development. That's why we recommend writing and running
unit tests when adding and modifying features. This allows us to program in
isolation without a complex setup, and has the added benefit of producing
well-tested business logic.
1. Add the **`ohif-integration`** label to your OHIF pull request.
2. In the PR body, add a line specifying the CS3D ref:
```
CS3D_REF: feat/my-feature
```
- **Version ref** (e.g. `4.19+`, `4.18.2`) — the workflow resolves it to an
exact published version and swaps the CS3D dependency via npm.
- **Branch ref** (e.g. `main`, `cornerstonejs:feat/foo`) — the workflow
clones the branch, builds CS3D from source with `bun run build:esm`, and
symlinks the built packages into OHIF's `node_modules`.
- For forks, use the `<owner>:<branch>` format
(e.g. `myGithubUser:feat/foo`).
- If no `CS3D_REF` is specified, the default is `4.19+`.
3. The workflow can also be triggered manually via **workflow_dispatch** with a
`cs3d_ref` input.
1. Clone this repository
2. Navigate to the project directory, and `yarn install`
3. To begin making changes, `yarn run dev`
4. To commit changes, run `yarn run cm`
#### What happens in CI
When creating tests, place the test file "next to" the file you're testing.
[For example](https://github.com/OHIF/Viewers/blob/master/src/utils/index.test.js):
The [Playwright workflow](.github/workflows/playwright.yml) runs two jobs:
```js
// File
index.js
| Job | Purpose |
|-----|---------|
| **Playwright Tests** | Builds OHIF (with CS3D linked or version-swapped), runs the full Playwright suite, uploads test results and coverage, and deploys a Netlify preview when `ohif-integration` is active. |
| **CS3D Branch Merge Guard** | A lightweight check that **fails** when the `ohif-integration` label is present and `CS3D_REF` points to a branch (not a version). This prevents merging while still letting the Playwright tests show green so you can see whether the code actually works. |
// Test for file
index.test.js
#### Testing changes that span both repos
If a feature requires changes in both Cornerstone3D and OHIF:
1. Create your feature branch in CS3D and push it.
2. Create a matching branch in OHIF.
3. Add the `ohif-integration` label to the OHIF pull request.
4. In the PR body, add: `CS3D_REF: <your-cs3d-branch>`.
5. Playwright tests will build CS3D from source, link it, and run the full
suite. The merge guard will block merge until you switch to a published
version — but you can see the test results and the preview deploy while
iterating.
6. Once the CS3D side is merged and published, update the PR body to reference
the published version (e.g. `CS3D_REF: 4.19+`). The tests will run against
the registry version and the merge guard will pass.
#### Preview deploys
When `ohif-integration` is active, the Playwright workflow also builds the OHIF
viewer and deploys it to Netlify as a preview. This gives you a live URL to
manually test the combined CS3D + OHIF changes without running anything locally.
For details on linking CS3D locally for development, see the
[Cornerstone3D README](libs/@cornerstonejs/README.md#local-development-linking--unlinking).
## Commands
These commands are available from the root directory. Each project directory
also supports a number of commands that can be found in their respective
`README.md` and `package.json` files.
| Yarn Commands | Description |
| ---------------------------- | ------------------------------------------------------------- |
| **Develop** | |
| `dev` | Default development experience for Viewer |
| `dev:fast` | Our experimental fast dev mode that uses rsbuild instead of webpack |
| `test:unit` | Jest multi-project test runner; overall coverage |
| **Deploy** | |
| `build`\* | Builds production output for our PWA Viewer | |
\* - For more information on different builds, check out our [Deploy
Docs][deployment-docs]
### Which config each command uses
The dev server and the production build select a different default
[configuration file][config-file] when `APP_CONFIG` is not set explicitly:
| Command | Default config | Data sources | `?customization=` |
| ------------------------------- | -------------------- | ------------ | ----------------- |
| `dev`, `dev:fast`, `start` | `config/dev.js` | Full set | Enabled |
| `build` | `config/default.js` | One demo source | Disabled |
- **`config/dev.js`** is the full-featured local-development config: every data
source is enabled, the `?customization=` URL feature is turned on (via
`customizationUrlPrefixes`), and it is kept at parity with the public demo
(`config/netlify.js`) so customizations behave locally the same way they do on
the demo.
- **`config/netlify.js`** is the public demo / Netlify deploy config
(`build:viewer:ci`), with the same full data-source set and `?customization=`
enabled.
- **`config/default.js`** is a locked-down baseline and is now **only** the
default for a plain production build (`build` with no `APP_CONFIG`): a single
read-only demo data source and `?customization=` off.
Any explicit `APP_CONFIG` overrides the default, e.g.
`APP_CONFIG=config/default.js pnpm run dev` or
`APP_CONFIG=config/netlify.js pnpm run build`.
## Project
The OHIF Medical Image Viewing Platform is maintained as a
[`monorepo`][monorepo]. This means that this repository, instead of containing a
single project, contains many projects. If you explore our project structure,
you'll see the following:
```bash
.
├── extensions #
│ ├── _example # Skeleton of example extension
│ ├── default # basic set of useful functionalities (datasources, panels, etc)
│ ├── cornerstone # image rendering and tools w/ Cornerstone3D
│ ├── cornerstone-dicom-sr # DICOM Structured Report rendering and export
│ ├── cornerstone-dicom-sr # DICOM Structured Report rendering and export
│ ├── cornerstone-dicom-seg # DICOM Segmentation rendering and export
│ ├── cornerstone-dicom-rt # DICOM RTSTRUCT rendering
│ ├── cornerstone-microscopy # Whole Slide Microscopy rendering
│ ├── dicom-pdf # PDF rendering
│ ├── dicom-video # DICOM RESTful Services
│ ├── measurement-tracking # Longitudinal measurement tracking
│ ├── tmtv # Total Metabolic Tumor Volume (TMTV) calculation
|
├── modes #
│ ├── _example # Skeleton of example mode
│ ├── basic-dev-mode # Basic development mode
│ ├── longitudinal # Longitudinal mode (measurement tracking)
│ ├── tmtv # Total Metabolic Tumor Volume (TMTV) calculation mode
│ └── microscopy # Whole Slide Microscopy mode
├── platform #
│ ├── core # Business Logic
│ ├── i18n # Internationalization Support
│ ├── ui # React component library
│ ├── docs # Documentation
│ └── viewer # Connects platform and extension projects
├── ... # misc. shared configuration
├── lerna.json # MonoRepo (Lerna) settings
├── package.json # Shared devDependencies and commands
└── README.md # This file
```
As you add and modify code, `jest` will watch for uncommitted changes and run
your tests, reporting the results to your terminal. Make a pull request with
your changes to `master`, and a core team member will review your work. If you
have any questions, please don't hesitate to reach out via a GitHub issue.
## Issues
_Looking to contribute? Look for the [Good First Issue][good-first-issue]
label._
### 🐛 Bugs
Please file an issue for bugs, missing documentation, or unexpected behavior.
[**See Bugs**][bugs]
### 💡 Feature Requests
Please file an issue to suggest new features. Vote on feature requests by adding
a 👍. This helps maintainers prioritize what to work on.
[**See Feature Requests**][requests-feature]
### ❓ Questions
For questions related to using the library, please visit our support community,
or file an issue on GitHub.
[Google Group][google-group]
## Roadmap
If you want to know what's planned for the very near future,
[check out our roadmap](https://ohif.canny.io/). The best way to influence when
and what is worked on is to contribute to the conversation by creating GitHub
issues, and contributing code through pull requests. OHIF's high level
priorities for the near future are:
- Feature parity with version 1
- Extension and configuration improvements with key integration partners
- Continued Developer Experience Improvements
- Segmentation Tools, and improved VTK.js support
More granular information will make it's way to the backlog as these items
become scoped for development by core maintainers.
> Don't hesitate to ask questions, propose features, or create pull requests.
> We're here, we're listening, and we're ready to build the best open source
> medical imaging viewer on the web.
#### Roadmap Generously Powered by Canny.io
<a href="https://ohif.canny.io/">
<img height="30" src="docs/latest/assets/img/canny-full.png" />
</a>
## Contributors
Thanks goes to these wonderful people
([emoji key](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore -->
<table><tr><td align="center"><a href="https://github.com/swederik"><img src="https://avatars3.githubusercontent.com/u/607793?v=4" width="100px;" alt="Erik Ziegler"/><br /><sub><b>Erik Ziegler</b></sub></a><br /><a href="https://github.com/OHIF/Viewers/commits?author=swederik" title="Code">💻</a></td><td align="center"><a href="https://github.com/evren217"><img src="https://avatars1.githubusercontent.com/u/4920551?v=4" width="100px;" alt="Evren Ozkan"/><br /><sub><b>Evren Ozkan</b></sub></a><br /><a href="https://github.com/OHIF/Viewers/commits?author=evren217" title="Code">💻</a></td><td align="center"><a href="https://github.com/galelis"><img src="https://avatars3.githubusercontent.com/u/2378326?v=4" width="100px;" alt="Gustavo André Lelis"/><br /><sub><b>Gustavo André Lelis</b></sub></a><br /><a href="https://github.com/OHIF/Viewers/commits?author=galelis" title="Code">💻</a></td><td align="center"><a href="http://dannyrb.com/"><img src="https://avatars1.githubusercontent.com/u/5797588?v=4" width="100px;" alt="Danny Brown"/><br /><sub><b>Danny Brown</b></sub></a><br /><a href="https://github.com/OHIF/Viewers/commits?author=dannyrb" title="Code">💻</a></td><td align="center"><a href="https://github.com/all-contributors/all-contributors-bot"><img src="https://avatars3.githubusercontent.com/u/46843839?v=4" width="100px;" alt="allcontributors[bot]"/><br /><sub><b>allcontributors[bot]</b></sub></a><br /><a href="https://github.com/OHIF/Viewers/commits?author=allcontributors" title="Documentation">📖</a></td><td align="center"><a href="https://www.linkedin.com/in/siliconvalleynextgeneration/"><img src="https://avatars0.githubusercontent.com/u/1230575?v=4" width="100px;" alt="Esref Durna"/><br /><sub><b>Esref Durna</b></sub></a><br /><a href="#question-EsrefDurna" title="Answering Questions">💬</a></td></tr></table>
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the
[all-contributors](https://github.com/all-contributors/all-contributors)
specification. Contributions of any kind welcome!
## License
MIT © [OHIF](https://github.com/OHIF)
## Acknowledgments
To acknowledge the OHIF Viewer in an academic publication, please cite
> _Open Health Imaging Foundation Viewer: An Extensible Open-Source Framework
> for Building Web-Based Imaging Applications to Support Cancer Research_
>
> Erik Ziegler, Trinity Urban, Danny Brown, James Petts, Steve D. Pieper, Rob
> Lewis, Chris Hafey, and Gordon J. Harris
>
> _JCO Clinical Cancer Informatics_, no. 4 (2020), 336-345, DOI:
> [10.1200/CCI.19.00131](https://www.doi.org/10.1200/CCI.19.00131)
>
> Open-Access on Pubmed Central:
> https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7259879/
or, for v1, please cite:
> _LesionTracker: Extensible Open-Source Zero-Footprint Web Viewer for Cancer
> Imaging Research and Clinical Trials_
>
@ -216,7 +343,7 @@ To acknowledge the OHIF Viewer in an academic publication, please cite
> [10.1158/0008-5472.CAN-17-0334](https://www.doi.org/10.1158/0008-5472.CAN-17-0334)
**Note:** If you use or find this repository helpful, please take the time to
star this repository on Github. This is an easy way for us to assess adoption
star this repository on GitHub. This is an easy way for us to assess adoption
and it can help us obtain future funding for the project.
This work is supported primarily by the National Institutes of Health, National
@ -224,41 +351,78 @@ Cancer Institute, Informatics Technology for Cancer Research (ITCR) program,
under a
[grant to Dr. Gordon Harris at Massachusetts General Hospital (U24 CA199460)](https://projectreporter.nih.gov/project_info_description.cfm?aid=8971104).
[NCI Imaging Data Commons (IDC) project](https://imaging.datacommons.cancer.gov/) supported the development of new features and bug fixes marked with ["IDC:priority"](https://github.com/OHIF/Viewers/issues?q=is%3Aissue+is%3Aopen+label%3AIDC%3Apriority),
["IDC:candidate"](https://github.com/OHIF/Viewers/issues?q=is%3Aissue+is%3Aopen+label%3AIDC%3Acandidate) or ["IDC:collaboration"](https://github.com/OHIF/Viewers/issues?q=is%3Aissue+is%3Aopen+label%3AIDC%3Acollaboration). NCI Imaging Data Commons is supported by contract number 19X037Q from
Leidos Biomedical Research under Task Order HHSN26100071 from NCI. [IDC Viewer](https://learn.canceridc.dev/portal/visualization) is a customized version of the OHIF Viewer.
This project is tested with BrowserStack. Thank you for supporting open-source!
## License
MIT © [OHIF](https://github.com/OHIF)
<!--
Links:
-->
Links
-->
<!-- prettier-ignore-start -->
<!-- ROW -->
<!-- Badges -->
[lerna-image]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg
[lerna-url]: https://lerna.js.org/
[netlify-image]: https://api.netlify.com/api/v1/badges/32708787-c9b0-4634-b50f-7ca41952da77/deploy-status
[netlify-url]: https://app.netlify.com/sites/ohif-dev/deploys
[all-contributors-image]: https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square
[contributing-url]: https://github.com/OHIF/Viewers/blob/react/CONTRIBUTING.md
[circleci-image]: https://circleci.com/gh/OHIF/Viewers.svg?style=svg
[circleci-url]: https://circleci.com/gh/OHIF/Viewers
[codecov-image]: https://codecov.io/gh/OHIF/Viewers/branch/react/graph/badge.svg
[codecov-url]: https://codecov.io/gh/OHIF/Viewers/branch/react
[codecov-image]: https://codecov.io/gh/OHIF/Viewers/branch/master/graph/badge.svg
[codecov-url]: https://codecov.io/gh/OHIF/Viewers/branch/master
[prettier-image]: https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square
[prettier-url]: https://github.com/prettier/prettier
[semantic-image]: https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
[semantic-url]: https://github.com/semantic-release/semantic-release
<!-- ROW -->
[npm-url]: https://npmjs.org/package/ohif-viewer
[npm-downloads-image]: https://img.shields.io/npm/dm/ohif-viewer.svg?style=flat-square
[npm-version-image]: https://img.shields.io/npm/v/ohif-viewer.svg?style=flat-square
[npm-url]: https://npmjs.org/package/@ohif/app
[npm-downloads-image]: https://img.shields.io/npm/dm/@ohif/app.svg?style=flat-square
[npm-version-image]: https://img.shields.io/npm/v/@ohif/app.svg?style=flat-square
[docker-pulls-img]: https://img.shields.io/docker/pulls/ohif/viewer.svg?style=flat-square
[docker-image-url]: https://hub.docker.com/r/ohif/viewer
[docker-image-url]: https://hub.docker.com/r/ohif/app
[license-image]: https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square
[license-url]: LICENSE
<!-- DOCS -->
[percy-image]: https://percy.io/static/images/percy-badge.svg
[percy-url]: https://percy.io/Open-Health-Imaging-Foundation/OHIF-Viewer
<!-- Links -->
[monorepo]: https://en.wikipedia.org/wiki/Monorepo
[how-to-fork]: https://help.github.com/en/articles/fork-a-repo
[how-to-clone]: https://help.github.com/en/articles/fork-a-repo#step-2-create-a-local-clone-of-your-fork
[ohif-architecture]: https://docs.ohif.org/architecture/index.html
[ohif-extensions]: https://docs.ohif.org/architecture/index.html
[deployment-docs]: https://docs.ohif.org/deployment/
[config-file]: https://docs.ohif.org/configuration/configurationFiles
[react-url]: https://reactjs.org/
[pwa-url]: https://developers.google.com/web/progressive-web-apps/
[ohif-viewer-url]: https://www.npmjs.com/package/ohif-viewer
[configuration-url]: https://docs.ohif.org/essentials/configuration.html
[extensions-url]: https://docs.ohif.org/advanced/extensions.html
<!-- Misc. -->
[react-viewer]: https://github.com/OHIF/Viewers/tree/react
<!-- Issue Boilerplate -->
[bugs]: https://github.com/OHIF/Viewers/labels/bug
[requests-feature]: https://github.com/OHIF/Viewers/labels/enhancement
[good-first-issue]: https://github.com/OHIF/Viewers/labels/good%20first%20issue
[google-group]: https://groups.google.com/forum/#!forum/cornerstone-platform
[ohif-viewer-url]: https://www.npmjs.com/package/@ohif/app
[configuration-url]: https://docs.ohif.org/configuring/
[extensions-url]: https://docs.ohif.org/extensions/
<!-- Platform -->
[platform-core]: platform/core/README.md
[core-npm]: https://www.npmjs.com/package/@ohif/core
[platform-i18n]: platform/i18n/README.md
[i18n-npm]: https://www.npmjs.com/package/@ohif/i18n
[platform-ui]: platform/ui/README.md
[ui-npm]: https://www.npmjs.com/package/@ohif/ui
[platform-viewer]: platform/app/README.md
[viewer-npm]: https://www.npmjs.com/package/@ohif/app
<!-- Extensions -->
[extension-cornerstone]: extensions/cornerstone/README.md
[cornerstone-npm]: https://www.npmjs.com/package/@ohif/extension-cornerstone
[extension-dicom-html]: extensions/dicom-html/README.md
[html-npm]: https://www.npmjs.com/package/@ohif/extension-dicom-html
[extension-dicom-microscopy]: extensions/dicom-microscopy/README.md
[microscopy-npm]: https://www.npmjs.com/package/@ohif/extension-dicom-microscopy
[extension-dicom-pdf]: extensions/dicom-pdf/README.md
[pdf-npm]: https://www.npmjs.com/package/@ohif/extension-dicom-pdf
[extension-vtk]: extensions/vtk/README.md
[vtk-npm]: https://www.npmjs.com/package/@ohif/extension-vtk
<!-- prettier-ignore-end -->
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FOHIF%2FViewers.svg?type=large&issueType=license)](https://app.fossa.com/projects/git%2Bgithub.com%2FOHIF%2FViewers?ref=badge_large&issueType=license)

8
aliases.config.js Normal file
View File

@ -0,0 +1,8 @@
/* Used by webpack, babel and eslint */
const path = require('path');
module.exports = {
'@codinsky/parse-js': path.resolve(__dirname, 'packages/parse/src'),
'@codinsky/curate': path.resolve(__dirname, 'packages/curate/src'),
};

62
babel.config.js Normal file
View File

@ -0,0 +1,62 @@
// https://babeljs.io/docs/en/options#babelrcroots
module.exports = {
babelrcRoots: ['./platform/*', './extensions/*', './modes/*'],
presets: ['@babel/preset-env', '@babel/preset-react', '@babel/preset-typescript'],
plugins: [
['@babel/plugin-transform-class-properties', { loose: true }],
'@babel/plugin-transform-typescript',
['@babel/plugin-transform-private-property-in-object', { loose: true }],
['@babel/plugin-transform-private-methods', { loose: true }],
'@babel/plugin-transform-class-static-block',
],
env: {
test: {
presets: [
[
// TODO: https://babeljs.io/blog/2019/03/19/7.4.0#migration-from-core-js-2
'@babel/preset-env',
{
modules: 'commonjs',
debug: false,
targets: { node: 'current' },
bugfixes: true,
},
],
'@babel/preset-react',
'@babel/preset-typescript',
],
plugins: [
// jest's babel coverage provider injects babel-plugin-istanbul when
// --collectCoverage is set; adding it here too makes babel 7 (pulled in
// by jest 30) throw "Duplicate plugin/preset detected".
'@babel/plugin-transform-object-rest-spread',
'@babel/plugin-syntax-dynamic-import',
'@babel/plugin-transform-regenerator',
'@babel/transform-destructuring',
'@babel/plugin-transform-runtime',
'@babel/plugin-transform-typescript',
'@babel/plugin-transform-class-static-block',
'@babel/plugin-transform-for-of',
['babel-plugin-transform-import-meta', { module: 'ES6' }],
],
},
production: {
presets: [
// WebPack handles ES6 --> Target Syntax
['@babel/preset-env', { modules: false }],
'@babel/preset-react',
'@babel/preset-typescript',
],
ignore: ['**/*.test.jsx', '**/*.test.js', '__snapshots__', '__tests__'],
},
development: {
presets: [
// WebPack handles ES6 --> Target Syntax
['@babel/preset-env', { modules: false }],
'@babel/preset-react',
'@babel/preset-typescript',
],
ignore: ['**/*.test.jsx', '**/*.test.js', '__snapshots__', '__tests__'],
},
},
};

1
commit.txt Normal file
View File

@ -0,0 +1 @@
6dd150d401ad73d60632a23378b7dfd4b5142690

View File

@ -1,77 +0,0 @@
version: '3.5'
services:
ldap:
image: dcm4che/slapd-dcm4chee:2.4.44-15.0
logging:
driver: json-file
options:
max-size: '10m'
ports:
- '389:389'
env_file: ./dcm4che/docker-compose-dcm4che.env
volumes:
- ./dcm4che/etc/localtime:/etc/localtime:ro
- ./dcm4che/etc/timezone:/etc/timezone:ro
- ./dcm4che/dcm4che-arc/ldap:/var/lib/ldap
- ./dcm4che/dcm4che-arc/slapd.d:/etc/ldap/slapd.d
networks:
- dcm4che_default
db:
image: dcm4che/postgres-dcm4chee:11.1-15
logging:
driver: json-file
options:
max-size: '10m'
ports:
- '5432:5432'
env_file: ./dcm4che/docker-compose-dcm4che.env
volumes:
- ./dcm4che/etc/localtime:/etc/localtime:ro
- ./dcm4che/etc/timezone:/etc/timezone:ro
- ./dcm4che/dcm4che-arc/db:/var/lib/postgresql/data
networks:
- dcm4che_default
arc:
image: dcm4che/dcm4chee-arc-psql:5.15.0
logging:
driver: json-file
options:
max-size: '10m'
ports:
- '8080:8080'
- '8443:8443'
- '9990:9990'
- '11112:11112'
- '2575:2575'
env_file: ./dcm4che/docker-compose-dcm4che.env
environment:
WILDFLY_CHOWN: /opt/wildfly/standalone /storage
WILDFLY_WAIT_FOR: ldap:389 db:5432
depends_on:
- ldap
- db
volumes:
- ./dcm4che/etc/localtime:/etc/localtime:ro
- ./dcm4che/etc/timezone:/etc/timezone:ro
- ./dcm4che/dcm4che-arc/wildfly:/opt/wildfly/standalone
- ./dcm4che/dcm4che-arc/storage:/storage
networks:
- dcm4che_default
viewer:
container_name: ohif-viewer
build:
context: ../
dockerfile: Dockerfile
ports:
- '80:80'
# depends_on:
# - orthanc
environment:
- NODE_ENV=production
- REACT_APP_CONFIG=config/local_dcm4chee
restart: always
networks:
- dcm4che_default
networks: dcm4che_default:

View File

@ -1,49 +0,0 @@
events {
worker_connections 4096; ## Default: 1024
}
http {
server {
listen 80 default_server;
server_name localhost;
#
# Wide-open CORS config for nginx
#
location / {
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
#
# Custom headers and headers various browsers *should* be OK with but aren't
#
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
#
# Tell client that this pre-flight info is valid for 20 days
#
add_header 'Access-Control-Allow-Headers' 'Authorization';
add_header 'Access-Control-Allow-Credentials' true;
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Length' 0;
return 204;
}
if ($request_method = 'POST') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
}
if ($request_method = 'GET') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
add_header 'Access-Control-Allow-Headers' 'Authorization';
add_header 'Access-Control-Allow-Credentials' true;
}
proxy_pass http://orthanc:8042;
}
}
}

View File

@ -1,48 +0,0 @@
worker_processes 1;
events { worker_connections 1024; }
http {
upstream orthanc-server {
server orthanc:8042;
}
server {
listen [::]:80 default_server;
listen 80;
# CORS Magic
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow_Credentials' 'true';
add_header 'Access-Control-Allow-Headers' 'Authorization,Accept,Origin,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,PATCH';
location / {
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow_Credentials' 'true';
add_header 'Access-Control-Allow-Headers' 'Authorization,Accept,Origin,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,PATCH';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
proxy_pass http://orthanc:8042;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
# CORS Magic
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow_Credentials' 'true';
add_header 'Access-Control-Allow-Headers' 'Authorization,Accept,Origin,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,PATCH';
}
}
}

View File

@ -1,26 +0,0 @@
version: '3.5'
services:
proxy:
image: nginx:1.15-alpine
ports:
- 8899:80
volumes:
- ./config/nginx.conf:/etc/nginx/nginx.conf:ro
restart: unless-stopped
# LINK: https://hub.docker.com/r/jodogne/orthanc-plugins/
# TODO: Update to use Postgres
# https://github.com/mrts/docker-postgresql-multiple-databases
orthanc:
image: jodogne/orthanc-plugins:1.5.6
hostname: orthanc
volumes:
# Config
- ./config/orthanc.json:/etc/orthanc/orthanc.json:ro
# Persist data
- ./volumes/orthanc-db/:/var/lib/orthanc/db/
# ports:
# - '4242:4242' # DICOM
# - '8042:8042' # Web
restart: unless-stopped

View File

@ -1,2 +0,0 @@
*
!.gitignore

View File

@ -1,16 +0,0 @@
# Output
dist/
# Dependencies
node_modules/
# Root
README.md
Dockerfile
# Misc. Config
.git
.DS_Store
.gitignore
.vscode
.circleci

View File

@ -1,5 +0,0 @@
# Docker ENV and ARG Variables
# ----------------------------
# https://vsupalov.com/docker-arg-env-variable-guide/
#
#

View File

@ -1,259 +0,0 @@
worker_processes 2;
error_log /var/logs/nginx/mydomain.error.log;
pid /var/run/nginx.pid;
include /usr/share/nginx/modules/*.conf; # See /usr/share/doc/nginx/README.dynamic.
events {
worker_connections 1024; ## Default: 1024
use epoll; # http://nginx.org/en/docs/events.html
multi_accept on; # http://nginx.org/en/docs/ngx_core_module.html#multi_accept
}
# Core Modules Docs:
# http://nginx.org/en/docs/http/ngx_http_core_module.html
http {
include '/usr/local/openresty/nginx/conf/mime.types';
default_type application/octet-stream;
keepalive_timeout 65;
keepalive_requests 100000;
tcp_nopush on;
tcp_nodelay on;
# lua_ settings
#
lua_package_path '/usr/local/openresty/lualib/?.lua;;';
lua_shared_dict discovery 1m; # cache for discovery metadata documents
lua_shared_dict jwks 1m; # cache for JWKs
# lua_ssl_trusted_certificate /etc/ssl/certs/ca-certificates.crt;
variables_hash_max_size 2048;
server_names_hash_bucket_size 128;
server_tokens off;
resolver 8.8.8.8 valid=30s ipv6=off;
resolver_timeout 11s;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# No idea what this is doing
# https://stackoverflow.com/a/5877989/1867984
# upstream upstream_server {
# # server 10.100.4.200:1010 max_fails=3 fail_timeout=30s;
# server 127.0.0.1:
# }
# Nginx `listener` block
server {
listen [::]:80 default_server;
listen 80;
# listen 443 ssl;
access_log /var/logs/nginx/mydomain.access.log;
# Domain to protect
server_name 127.0.0.1 localhost; # mydomain.com;
proxy_intercept_errors off;
# ssl_certificate /etc/letsencrypt/live/mydomain.co.uk/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/mydomain.co.uk/privkey.pem;
gzip on;
gzip_types text/css application/javascript application/json image/svg+xml;
gzip_comp_level 9;
etag on;
# https://github.com/bungle/lua-resty-session/issues/15
set $session_check_ssi off;
lua_code_cache off;
set $session_secret Eeko7aeb6iu5Wohch9Loo1aitha0ahd1;
set $session_storage cookie;
server_tokens off; # Hides server version num
# [PROTECTED] Reverse Proxy for `orthanc` admin
#
location /pacs-admin/ {
access_by_lua_block {
local opts = {
redirect_uri = "http://127.0.0.1/pacs-admin/admin",
discovery = "http://127.0.0.1/auth/realms/ohif/.well-known/openid-configuration",
token_endpoint_auth_method = "client_secret_basic",
client_id = "pacs",
client_secret = "66279641-eba6-47f5-9fdb-70c4ac74d548",
client_jwt_assertion_expires_in = 60 * 60,
ssl_verify = "no",
scope = "openid email profile",
refresh_session_interval = 900,
redirect_uri_scheme = "http",
redirect_after_logout_uri = "/",
session_contents = {id_token=true}
}
-- call authenticate for OpenID Connect user authentication
local res, err = require("resty.openidc").authenticate(opts)
if err or not res then
ngx.print(err)
ngx.status = 200
ngx.say(err and err or "no access_token provided")
ngx.exit(ngx.HTTP_FORBIDDEN)
end
-- Or set cookie?
-- ngx.req.set_header("Authorization", "Bearer " .. res.access_token)
ngx.req.set_header("X-USER", res.id_token.sub)
}
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
expires 0;
add_header Cache-Control private;
proxy_pass http://orthanc:8042/;
}
# [PROTECTED] Reverse Proxy for `orthanc` APIs (including DICOMWeb)
#
location /pacs/ {
access_by_lua_block {
local opts = {
discovery = "http://127.0.0.1/auth/realms/ohif/.well-known/openid-configuration",
}
-- call bearer_jwt_verify for OAuth 2.0 JWT validation
local res, err = require("resty.openidc").bearer_jwt_verify(opts)
if err or not res then
ngx.status = 403
ngx.say(err and err or "no access_token provided")
ngx.exit(ngx.HTTP_FORBIDDEN)
end
}
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection "upgrade";
expires 0;
add_header Cache-Control private;
proxy_pass http://orthanc:8042/;
# By default, this endpoint is protected by CORS (cross-origin-resource-sharing)
# You can add headers to allow other domains to request this resource.
# See the "Updating CORS Settings" example below
}
# Keycloak
#
location /auth/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://keycloak:8080/auth/;
}
# Do not cache sw.js, required for offline-first updates.
location /sw.js {
add_header Cache-Control "no-cache";
proxy_cache_bypass $http_pragma;
proxy_cache_revalidate on;
expires off;
access_log off;
}
# Single Page App
# Try files, fallback to index.html
#
location / {
alias /var/www/html/;
index index.html;
try_files $uri $uri/ /index.html;
add_header Cache-Control "no-store, no-cache, must-revalidate";
}
# EXAMPLE: Reverse Proxy, no auth
# [UNPROTECTED] reverse proxy for `orthanc`
#
# location /pacs/ {
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $remote_addr;
# proxy_set_header Host $host;
#
# proxy_pass http://orthanc:8042/;
#
# # OR
# # rewrite ^/pacs(.*) /$1 break;
# # proxy_pass http://orthanc:8042;
# }
# EXAMPLE: Modifying headers to allow requests from other domains
# IE. Updating CORS settings
#
# location / {
# if ($request_method = 'OPTIONS') {
# add_header 'Access-Control-Allow-Origin' '*';
# add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
# #
# # Custom headers and headers various browsers *should* be OK with but aren't
# #
# add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
# #
# # Tell client that this pre-flight info is valid for 20 days
# #
# add_header 'Access-Control-Allow-Headers' 'Authorization';
# add_header 'Access-Control-Allow-Credentials' true;
# add_header 'Access-Control-Max-Age' 1728000;
# add_header 'Content-Length' 0;
# return 204;
# }
# if ($request_method = 'POST') {
# add_header 'Access-Control-Allow-Origin' '*';
# add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
# add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
# add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
# }
# if ($request_method = 'GET') {
# add_header 'Access-Control-Allow-Origin' '*';
# add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
# add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
# add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
# add_header 'Access-Control-Allow-Headers' 'Authorization';
# add_header 'Access-Control-Allow-Credentials' true;
# }
#
# # proxy_http_version 1.1;
#
# # proxy_set_header Host $host;
# # proxy_set_header X-Real-IP $remote_addr;
# # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# # proxy_set_header X-Forwarded-Proto $scheme;
#
# proxy_pass http://orthanc:8042;
# }
# EXAMPLE: Redirect server error pages to the static page /40x.html
#
# error_page 404 /404.html;
# location = /40x.html {
# }
# EXAMPLE: Redirect server error pages to the static page /50x.html
#
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
}
}

View File

@ -1,95 +0,0 @@
# Reference:
# - https://docs.docker.com/compose/compose-file
# - https://eclipsesource.com/blogs/2018/01/11/authenticating-reverse-proxy-with-keycloak/
version: '3.5'
services:
# Exposed server that's handling incoming web requests
# Underlying image: openresty/openresty:alpine-fat
ohif_viewer:
build:
# Project root
context: ./../../
# Relative to context
dockerfile: ./docker/OpenResty-Orthanc-Keycloak/dockerfile
image: webapp:latest
container_name: webapp
volumes:
# Nginx config
- ./config/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf:ro
# Logs
- ./logs/nginx:/var/logs/nginx
# Let's Encrypt
# - letsencrypt_certificates:/etc/letsencrypt
# - letsencrypt_challenges:/var/www/letsencrypt
ports:
- '443:443' # SSL
- '80:80' # Web
depends_on:
- keycloak
- orthanc
restart: on-failure
# LINK: https://hub.docker.com/r/jodogne/orthanc-plugins/
# TODO: Update to use Postgres
# https://github.com/mrts/docker-postgresql-multiple-databases
orthanc:
image: jodogne/orthanc-plugins:1.5.6
hostname: orthanc
container_name: orthanc
volumes:
# Config
- ./config/orthanc.json:/etc/orthanc/orthanc.json:ro
# Persist data
- ./volumes/orthanc-db/:/var/lib/orthanc/db/
restart: unless-stopped
# LINK: https://hub.docker.com/r/jboss/keycloak
keycloak:
image: jboss/keycloak:6.0.1
hostname: keycloak
container_name: keycloak
volumes:
# Theme: https://www.keycloak.org/docs/latest/server_development/index.html#_themes
- ./volumes/keycloak-themes/ohif:/opt/jboss/keycloak/themes/ohif
# Previous Realm Config
- ./config/ohif-keycloak-realm.json:/tmp/ohif-keycloak-realm.json
environment:
# Database
DB_VENDOR: postgres
DB_ADDR: postgres
DB_PORT: 5432
DB_DATABASE: keycloak
DB_SCHEMA: public
DB_USER: keycloak
DB_PASSWORD: password
# Keycloak
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: password
KEYCLOAK_IMPORT: /tmp/ohif-keycloak-realm.json
# KEYCLOAK_WELCOME_THEME: <theme-name>
# KEYCLOAK_DEFAULT_THEME: <theme-name>
# KEYCLOAK_HOSTNAME: (recommended in prod)
# KEYCLOAK_LOGLEVEL: DEBUG
PROXY_ADDRESS_FORWARDING: 'true'
depends_on:
- postgres
restart: unless-stopped
# LINK: https://hub.docker.com/_/postgres/
postgres:
image: postgres:11.2
hostname: postgres
container_name: postgres
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
POSTGRES_DB: keycloak
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: password
restart: unless-stopped
volumes:
postgres_data:
driver: local

View File

@ -1,65 +0,0 @@
# docker-compose
# --------------
# This dockerfile is used by the `docker-compose.yml` adjacent file. When
# running `docker-compose build`, this dockerfile helps build the "webapp" image.
# All paths are relative to the `context`, which is the project root directory.
#
# docker build
# --------------
# If you would like to use this dockerfile to build and tag an image, make sure
# you set the context to the project's root directory:
# https://docs.docker.com/engine/reference/commandline/build/
#
#
# SUMMARY
# --------------
# This dockerfile has two stages:
#
# 1. Building the React application for production
# 2. Setting up our Nginx (OpenResty*) image w/ step one's output
#
# * OpenResty is functionally identical to Nginx with the addition of Lua out of
# the box.
# Stage 1: Build the application
FROM node:11.2.0-slim as builder
RUN mkdir /usr/src/app
WORKDIR /usr/src/app
ENV REACT_APP_CONFIG=config/docker_openresty-orthanc-keycloak.js
ENV PATH /usr/src/app/node_modules/.bin:$PATH
COPY package.json /usr/src/app/package.json
COPY yarn.lock /usr/src/app/yarn.lock
ADD . /usr/src/app/
RUN yarn install
RUN yarn run build:web
# Stage 2: Bundle the built application into a Docker container
# which runs openresty (nginx) using Alpine Linux
# LINK: https://hub.docker.com/r/openresty/openresty
FROM openresty/openresty:1.15.8.1rc1-0-alpine-fat
RUN mkdir /var/log/nginx
RUN apk add --no-cache openssl
RUN apk add --no-cache openssl-dev
RUN apk add --no-cache git
RUN apk add --no-cache gcc
# !!!
RUN luarocks install lua-resty-openidc
#
RUN luarocks install lua-resty-jwt
RUN luarocks install lua-resty-session
RUN luarocks install lua-resty-http
# !!!
RUN luarocks install lua-resty-openidc
RUN luarocks install luacrypto
# Copy build output to image
COPY --from=builder /usr/src/app/build /var/www/html
ENTRYPOINT ["/usr/local/openresty/nginx/sbin/nginx", "-g", "daemon off;"]

View File

@ -1,212 +0,0 @@
body {
background-color: #040507;
background-image: url('../img/background.jpg');
background-size: cover;
background-repeat: no-repeat;
width: 100vw;
height: 100vh;
overflow: hidden;
color: #fff;
font-family: sans-serif;
text-shadow: 0px 0px 10px #000;
}
a {
color: #fff;
}
div#kc-content {
position: absolute;
top: 20%;
left: 50%;
width: 550px;
margin-left: -180px;
}
div#kc-form {
float: left;
width: 350px;
}
div#kc-form label {
display: block;
font-size: 16px;
}
div#info-area {
position: fixed;
bottom: 0;
left: 0;
margin-top: 40px;
background-color: rgba(0, 0, 0, 0.4);
padding: 20px;
width: 100%;
}
div#info-area p {
margin-right: 30px;
display: inline;
text-shadow: none;
}
input[type='text'],
input[type='password'] {
color: #333;
font-size: 18px;
margin-bottom: 20px;
background-color: rgba(256, 256, 256, 0.7);
border: 0px solid rgba(0, 0, 0, 0.2);
box-shadow: inset 0 0 2px 2px rgba(0, 0, 0, 0.15);
padding: 10px;
width: 296px;
}
input[type='text']:hover,
input[type='password']:hover {
background-color: rgba(256, 256, 256, 0.9);
}
input[type='submit'] {
border: none;
background: -webkit-linear-gradient(
top,
rgba(255, 255, 255, 0.8),
rgba(255, 255, 255, 0.1)
);
background: -moz-linear-gradient(
top,
rgba(255, 255, 255, 0.8),
rgba(255, 255, 255, 0.1)
);
background: -ms-linear-gradient(
top,
rgba(255, 255, 255, 0.8),
rgba(255, 255, 255, 0.1)
);
background: -o-linear-gradient(
top,
rgba(255, 255, 255, 0.8),
rgba(255, 255, 255, 0.1)
);
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.5);
color: rgba(0, 0, 0, 0.6);
font-size: 14px;
font-weight: bold;
padding: 10px;
margin-top: 20px;
margin-right: 10px;
width: 150px;
}
input[type='submit']:hover {
background-color: rgba(255, 255, 255, 0.8);
}
div#kc-form-options div {
display: inline-block;
margin-right: 20px;
font-size: 12px;
}
div#kc-form-options div label {
font-size: 12px;
}
div#kc-feedback {
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.5);
position: fixed;
top: 0;
left: 0;
width: 100%;
text-align: center;
}
div#kc-feedback-wrapper {
padding: 1em;
}
div.feedback-success {
background-color: rgba(155, 155, 255, 0.1);
}
div.feedback-warning {
background-color: rgba(255, 175, 0, 0.1);
}
div.feedback-error {
background-color: rgba(255, 0, 0, 0.1);
}
div#kc-header {
display: none;
}
div#kc-registration {
margin-bottom: 20px;
}
div#social-login {
border-left: 1px solid rgba(255, 255, 255, 0.2);
float: right;
width: 150px;
padding: 20px 0 200px 40px;
}
div.social-login span {
display: none;
}
div#kc-social-providers ul {
list-style: none;
margin: 0;
padding: 0;
}
div#kc-social-providers ul li {
margin-bottom: 20px;
}
div#kc-social-providers ul li span {
display: inline;
width: 100px;
}
a.zocial {
border: none;
background: -webkit-linear-gradient(
top,
rgba(255, 255, 255, 0.8),
rgba(255, 255, 255, 0.1)
) !important;
background: -moz-linear-gradient(
top,
rgba(255, 255, 255, 0.8),
rgba(255, 255, 255, 0.1)
) !important;
background: -ms-linear-gradient(
top,
rgba(255, 255, 255, 0.8),
rgba(255, 255, 255, 0.1)
) !important;
background: -o-linear-gradient(
top,
rgba(255, 255, 255, 0.8),
rgba(255, 255, 255, 0.1)
) !important;
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.5);
color: rgba(0, 0, 0, 0.6);
width: 130px;
text-shadow: none;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
padding-top: 0.2em;
padding-bottom: 0.2em;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 MiB

View File

@ -1,3 +0,0 @@
parent=base
import=common/keycloak
styles=lib/zocial/zocial.css css/styles.css

View File

@ -1,2 +0,0 @@
*
!.gitignore

View File

@ -1,16 +0,0 @@
# Output
dist/
# Dependencies
node_modules/
# Root
README.md
Dockerfile
# Misc. Config
.git
.DS_Store
.gitignore
.vscode
.circleci

View File

@ -1,5 +0,0 @@
# Docker ENV and ARG Variables
# ----------------------------
# https://vsupalov.com/docker-arg-env-variable-guide/
#
#

View File

@ -1,135 +0,0 @@
worker_processes 2;
error_log /var/logs/nginx/mydomain.error.log;
pid /var/run/nginx.pid;
include /usr/share/nginx/modules/*.conf; # See /usr/share/doc/nginx/README.dynamic.
events {
worker_connections 1024; ## Default: 1024
use epoll; # http://nginx.org/en/docs/events.html
multi_accept on; # http://nginx.org/en/docs/ngx_core_module.html#multi_accept
}
# Core Modules Docs:
# http://nginx.org/en/docs/http/ngx_http_core_module.html
http {
include '/usr/local/openresty/nginx/conf/mime.types';
default_type application/octet-stream;
keepalive_timeout 65;
keepalive_requests 100000;
tcp_nopush on;
tcp_nodelay on;
# lua_ settings
#
lua_package_path '/usr/local/openresty/lualib/?.lua;;';
lua_shared_dict discovery 1m; # cache for discovery metadata documents
lua_shared_dict jwks 1m; # cache for JWKs
# lua_ssl_trusted_certificate /etc/ssl/certs/ca-certificates.crt;
variables_hash_max_size 2048;
server_names_hash_bucket_size 128;
server_tokens off;
resolver 8.8.8.8 valid=30s ipv6=off;
resolver_timeout 11s;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# Nginx `listener` block
server {
listen [::]:80 default_server;
listen 80;
# listen 443 ssl;
access_log /var/logs/nginx/mydomain.access.log;
# Domain to protect
server_name 127.0.0.1 localhost; # mydomain.com;
proxy_intercept_errors off;
# ssl_certificate /etc/letsencrypt/live/mydomain.co.uk/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/mydomain.co.uk/privkey.pem;
gzip on;
gzip_types text/css application/javascript application/json image/svg+xml;
gzip_comp_level 9;
etag on;
# https://github.com/bungle/lua-resty-session/issues/15
set $session_check_ssi off;
lua_code_cache off;
set $session_secret Eeko7aeb6iu5Wohch9Loo1aitha0ahd1;
set $session_storage cookie;
server_tokens off; # Hides server version num
# Reverse Proxy for `orthanc` admin
#
location /pacs-admin/ {
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
expires 0;
add_header Cache-Control private;
proxy_pass http://orthanc:8042/;
}
# Reverse Proxy for `orthanc` APIs (including DICOMWeb)
#
location /pacs/ {
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
expires 0;
add_header Cache-Control private;
proxy_pass http://orthanc:8042/;
# By default, this endpoint is protected by CORS (cross-origin-resource-sharing)
# You can add headers to allow other domains to request this resource.
# See the "Updating CORS Settings" example below
}
# Do not cache sw.js, required for offline-first updates.
location /sw.js {
add_header Cache-Control "no-cache";
proxy_cache_bypass $http_pragma;
proxy_cache_revalidate on;
expires off;
access_log off;
}
# Single Page App
# Try files, fallback to index.html
#
location / {
alias /var/www/html/;
index index.html;
try_files $uri $uri/ /index.html;
add_header Cache-Control "no-store, no-cache, must-revalidate";
}
# EXAMPLE: Redirect server error pages to the static page /40x.html
#
# error_page 404 /404.html;
# location = /40x.html {
# }
# EXAMPLE: Redirect server error pages to the static page /50x.html
#
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
}
}

View File

@ -1,89 +0,0 @@
{
"Name": "Orthanc inside Docker",
"StorageDirectory": "/var/lib/orthanc/db",
"IndexDirectory": "/var/lib/orthanc/db",
"StorageCompression": false,
"MaximumStorageSize": 0,
"MaximumPatientCount": 0,
"LuaScripts": [],
"Plugins": ["/usr/share/orthanc/plugins", "/usr/local/share/orthanc/plugins"],
"ConcurrentJobs": 2,
"HttpServerEnabled": true,
"HttpPort": 8042,
"HttpDescribeErrors": true,
"HttpCompressionEnabled": true,
"DicomServerEnabled": true,
"DicomAet": "ORTHANC",
"DicomCheckCalledAet": false,
"DicomPort": 4242,
"DefaultEncoding": "Latin1",
"DeflatedTransferSyntaxAccepted": true,
"JpegTransferSyntaxAccepted": true,
"Jpeg2000TransferSyntaxAccepted": true,
"JpegLosslessTransferSyntaxAccepted": true,
"JpipTransferSyntaxAccepted": true,
"Mpeg2TransferSyntaxAccepted": true,
"RleTransferSyntaxAccepted": true,
"UnknownSopClassAccepted": false,
"DicomScpTimeout": 30,
"RemoteAccessAllowed": true,
"SslEnabled": false,
"SslCertificate": "certificate.pem",
"AuthenticationEnabled": false,
"RegisteredUsers": {
"test": "test"
},
"DicomModalities": {},
"DicomModalitiesInDatabase": false,
"DicomAlwaysAllowEcho": true,
"DicomAlwaysAllowStore": true,
"DicomCheckModalityHost": false,
"DicomScuTimeout": 10,
"OrthancPeers": {},
"OrthancPeersInDatabase": false,
"HttpProxy": "",
"HttpVerbose": true,
"HttpTimeout": 10,
"HttpsVerifyPeers": true,
"HttpsCACertificates": "",
"UserMetadata": {},
"UserContentType": {},
"StableAge": 60,
"StrictAetComparison": false,
"StoreMD5ForAttachments": true,
"LimitFindResults": 0,
"LimitFindInstances": 0,
"LimitJobs": 10,
"LogExportedResources": false,
"KeepAlive": true,
"TcpNoDelay": true,
"HttpThreadsCount": 50,
"StoreDicom": true,
"DicomAssociationCloseDelay": 5,
"QueryRetrieveSize": 10,
"CaseSensitivePN": false,
"LoadPrivateDictionary": true,
"Dictionary": {},
"SynchronousCMove": true,
"JobsHistorySize": 10,
"SaveJobs": true,
"OverwriteInstances": false,
"MediaArchiveSize": 1,
"StorageAccessOnFind": "Always",
"MetricsEnabled": true,
"DicomWeb": {
"Enable": true,
"Root": "/dicom-web/",
"EnableWado": true,
"WadoRoot": "/wado",
"Host": "127.0.0.1",
"Ssl": false,
"StowMaxInstances": 10,
"StowMaxSize": 10,
"QidoCaseSensitive": false
}
}

View File

@ -1,45 +0,0 @@
# Reference:
# - https://docs.docker.com/compose/compose-file
# - https://eclipsesource.com/blogs/2018/01/11/authenticating-reverse-proxy-with-keycloak/
version: '3.5'
services:
# Exposed server that's handling incoming web requests
# Underlying image: openresty/openresty:alpine-fat
ohif_viewer:
build:
# Project root
context: ./../../
# Relative to context
dockerfile: ./docker/OpenResty-Orthanc/dockerfile
image: webapp:latest
container_name: webapp
volumes:
# Nginx config
- ./config/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf:ro
# Logs
- ./logs/nginx:/var/logs/nginx
# Let's Encrypt
# - letsencrypt_certificates:/etc/letsencrypt
# - letsencrypt_challenges:/var/www/letsencrypt
ports:
- '443:443' # SSL
- '80:80' # Web
depends_on:
- orthanc
restart: on-failure
# LINK: https://hub.docker.com/r/jodogne/orthanc-plugins/
# TODO: Update to use Postgres
# https://github.com/mrts/docker-postgresql-multiple-databases
orthanc:
image: jodogne/orthanc-plugins:1.5.6
hostname: orthanc
container_name: orthanc
volumes:
# Config
- ./config/orthanc.json:/etc/orthanc/orthanc.json:ro
# Persist data
- ./volumes/orthanc-db/:/var/lib/orthanc/db/
restart: unless-stopped

View File

@ -1,65 +0,0 @@
# docker-compose
# --------------
# This dockerfile is used by the `docker-compose.yml` adjacent file. When
# running `docker-compose build`, this dockerfile helps build the "webapp" image.
# All paths are relative to the `context`, which is the project root directory.
#
# docker build
# --------------
# If you would like to use this dockerfile to build and tag an image, make sure
# you set the context to the project's root directory:
# https://docs.docker.com/engine/reference/commandline/build/
#
#
# SUMMARY
# --------------
# This dockerfile has two stages:
#
# 1. Building the React application for production
# 2. Setting up our Nginx (OpenResty*) image w/ step one's output
#
# * OpenResty is functionally identical to Nginx with the addition of Lua out of
# the box.
# Stage 1: Build the application
FROM node:11.2.0-slim as builder
RUN mkdir /usr/src/app
WORKDIR /usr/src/app
ENV REACT_APP_CONFIG=config/docker_openresty-orthanc.js
ENV PATH /usr/src/app/node_modules/.bin:$PATH
COPY package.json /usr/src/app/package.json
COPY yarn.lock /usr/src/app/yarn.lock
ADD . /usr/src/app/
RUN yarn install
RUN yarn run build:web
# Stage 2: Bundle the built application into a Docker container
# which runs openresty (nginx) using Alpine Linux
# LINK: https://hub.docker.com/r/openresty/openresty
FROM openresty/openresty:1.15.8.1rc1-0-alpine-fat
RUN mkdir /var/log/nginx
RUN apk add --no-cache openssl
RUN apk add --no-cache openssl-dev
RUN apk add --no-cache git
RUN apk add --no-cache gcc
# !!!
RUN luarocks install lua-resty-openidc
#
RUN luarocks install lua-resty-jwt
RUN luarocks install lua-resty-session
RUN luarocks install lua-resty-http
# !!!
RUN luarocks install lua-resty-openidc
RUN luarocks install luacrypto
# Copy build output to image
COPY --from=builder /usr/src/app/build /var/www/html
ENTRYPOINT ["/usr/local/openresty/nginx/sbin/nginx", "-g", "daemon off;"]

Some files were not shown because too many files have changed in this diff Show More