All files / src/composables useScanSliders.ts

100% Statements 21/21
100% Branches 0/0
100% Functions 18/18
100% Lines 21/21

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37                  3x 119x 119x 119x 121x 121x 121x 121x 119x 119x 119x 119x 119x 119x 119x 119x 119x       59x 59x 944x 100x        
import { scanState } from '@/models/scanState';
import { watch, WatchSource } from 'vue';
import { useViewer3cr } from '@/composables/useViewer3cr';
import { SlidersActions } from '@3cr/types-ts';
 
type WatchScanSliders = {
  [key in SlidersActions]: WatchSource<number>;
};
 
const sliders: WatchScanSliders = {
  [SlidersActions.sl01]: () => scanState.value.Display.Brightness,
  [SlidersActions.sl02]: () => scanState.value.Display.Contrast,
  [SlidersActions.sl03]: () => scanState.value.Display.Opacity,
  [SlidersActions.sl04]: () => scanState.value.Display.WindowLower,
  [SlidersActions.sl05]: () => scanState.value.Display.WindowUpper,
  [SlidersActions.sl06]: () => scanState.value.Display.ThresholdLower,
  [SlidersActions.sl07]: () => scanState.value.Display.ThresholdUpper,
  [SlidersActions.sl08]: () => scanState.value.Slice.TransverseLower,
  [SlidersActions.sl09]: () => scanState.value.Orientations.Transverse.Slice,
  [SlidersActions.sl10]: () => scanState.value.Slice.TransverseUpper,
  [SlidersActions.sl11]: () => scanState.value.Slice.SagittalLower,
  [SlidersActions.sl12]: () => scanState.value.Orientations.Sagittal.Slice,
  [SlidersActions.sl13]: () => scanState.value.Slice.SagittalUpper,
  [SlidersActions.sl14]: () => scanState.value.Slice.CoronalLower,
  [SlidersActions.sl15]: () => scanState.value.Orientations.Coronal.Slice,
  [SlidersActions.sl16]: () => scanState.value.Slice.CoronalUpper,
};
 
export function useScanSliders(): void {
  const viewer3cr = useViewer3cr();
  for (const slider of Object.keys(sliders) as (keyof WatchScanSliders)[]) {
    watch(sliders[slider], async (value: number) => {
      await viewer3cr.sliderHandler(slider, value);
    });
  }
}