dusunax / dicom-and-three-js-viewer

🩻 great viewer for dcm & ply file
2 stars 0 forks source link

230628 - Bugfix & Improve DICOM viewer feature #16

Closed dusunax closed 1 year ago

dusunax commented 1 year ago

230628 - Bugfix & Improve DICOM viewer feature

πŸ—‚ Works μž‘μ—…λ‚΄μš©

[feat] Improve DICOM viewer feature.

[bugfix] remove the three GUI when leave 3D route.


[feat] Improve DICOM viewer feature. πŸ“Œ

Keyboard indexing

Key Action
Left Decrease by 1
Right Increase by 1
Up Decrease by limit
Down Increase by limit
const handleKeyDown = (event: KeyboardEvent) => {
  if (event.key === "ArrowLeft") {
    setImageIndex((prevIndex) => {
      const newIndex = prevIndex > 0 ? prevIndex - 1 : prevIndex;
      return newIndex;
    });
  } else if (event.key === "ArrowRight") {
    setImageIndex((prevIndex) => {
      const newIndex =
        prevIndex + 1 < itemSrcArray.length ? prevIndex + 1 : prevIndex;
      return newIndex;
    });
  } else if (event.key === "ArrowUp") {
    event.preventDefault();

    setImageIndex((prevIndex) => {
      const newIndex =
        prevIndex - rowLimit + 1 > 0 ? prevIndex - rowLimit : prevIndex;
      return newIndex;
    });
  } else if (event.key === "ArrowDown") {
    event.preventDefault();

    setImageIndex((prevIndex) => {
      const newIndex =
        prevIndex + rowLimit < itemSrcArray.length
          ? prevIndex + rowLimit
          : prevIndex;
      return newIndex;
    });
  }
};

Organizing Tools

Tool Action
Annotate on left click
Other Tools on right click
Overlay Scale overlay
/** 도ꡬ λΉ„ν™œμ„±ν™” */
const setDeactivateToolByIndex = (index: number, tools: Tool[]): void => {
  cornerstoneTools.setToolPassive(tools[index].name);
};

/** overlay ν† κΈ€ */
const overlayToggleHandler = () => {
  if (overlayToggle) {
    setDeactivateToolByIndex(0, OVERLAY_TOOLS);
  } else {
    setToolsByIndex(0, OVERLAY_TOOLS, -1);
  }
  setOverlayToggle(!overlayToggle);
};

[bugfix] remove the three GUI when leave 3D route. πŸ“Œ

dusunax commented 1 year ago

Close issue and move to the next documentation.