cornerstone 라이브러리를 기반으로 Dicom Image를 다루기 위한 여러 Component들을 제공한다.
https://frontend-components-handbook.netlify.com/#/insight-viewer/getting-started
npm install @lunit/insight-viewer@alpha<ArrowedContourViewer>추가
<LineDrawer>,<LineViewer>추가
<CornerstoneViewer>추가 → Deprecate<InsightViewer>
invert={true} flip={true}기본값 적용 안되는 문제 수정
- 기본 세팅 방식 변경
<InsightViewerTestController>추가
useBulkImagePosition()추가
<ThumbnailImage>추가useImageStore()추가
<CircleDrawer>,<ContourDrawer>에 Animation Effect 추가.animateStroke={fasle}로 비활성 가능
<UserPointViewer>→<PointViewer><UserCircleViewer>→<CircleViewer><UserCircleDrawer>→<CircleDrawer><UserContourViewer>→<ContourViewer><UserContourDrawer>→<ContourDrawer><MachineHeatmapViewer>→<HeatmapViewer>- CSS Variables 적용
- Zoom Page가 Scroll 되는 경우 위치 계산 잘못하는 문제 수정
<UserPointViewer pointPinComponent={} />를((contour: T) => ComponentType<PointPinProps>) | ComponentType<PointPinProps>로 확장<UserContourViewer border={false} />기본 Style 변경 및border제외 옵션 추가<UserCircleViewer border={false} />기본 Style 변경 및border제외 옵션 추가
- Zoom, Adjust 단축키 구현을 위한
updateViewport(),zoomMiddleLeft(),zoomMiddleRight(),zoomMiddleCenter(),adjustWindowCenter(),adjustWindowWidth()추가 <InsightViewer defaultViewportTransforms={} />추가useImageLoadedTime()추가
- Zoom 속도 보정 (
deltaY * 0.03→(deltaY > 0 ? 1 : -1) * 0.03) - Cornerstone
loadImage()실패를 위한 Retry 추가 (5000ms)
ContourInfoType이 삭제됨Contour를 사용하는 모든@lunit/insight-viewerComponent들이<T extends Contour>형태로 변경됨ContourType에 의한 문제는 JS의 경우 애초에 Type에 의한 제한이 없기 때문에 큰 문제가 없고, TS의 경우 Compile Error가 발생할 여지가 있음useUserContour()hook 의addContour()arguments 가addContour: (polygon: Point[], contourInfo?: Omit<T, 'id' | 'polygon'>) => T | null;로 변경됨- 기존
addContour(polygon, 0, label...)과 같이 사용하던 것을addContour(polygon, {label, dataAttrs...})와 같이 변경해 줘야함 addContour()를 사용하지 않은 경우, 또는 2번째 이후의 인자를 넘기지 않는 형태로 사용한 경우 영향이 없음
<DCMImage>에서 WebGL 사용하지 않도록 변경 (WebGL Context 수량 제한 회피)
<DCMImage>추가
<UserCircleViewer>추가
- Fix ESLint warnings
<UserPointViewer>의 기본 label 표시를contour.id사용
<UserPointViewer>추가
Contour.dataAttrs속성 추가
CornerstoneImage.destroy()시에 모든 dcm image loading을 취소시킴
useViewportMirroring에서 오작동이 일어날 수 있는<InsightViewer>.updateViewport()를 분할
Contour.label추가 (입력된 경우Contour.id대신 출력됨)const {addContours} = useUserContour()추가 (다량의 Contour 추가 가능)useUserContour({initialContours})추가 (초기화)
UserContourDrawer의componentWillUnmount()에 의한 Event deactivation이mouseupEvent에 의해 취소되는 Event 순서 문제 해결UserContourDrawer에서null가능성 배제 코드 제거
CornerstoneSeriesImage의 이미지 순서가 뒤섞이는 문제 해결
useUserContour({ nextId?: number | RefObject<number> })옵션 추가
<UserContourViewer className="">,<UserContourDrawer className="">Custom Style
- 기존
<UserContourViewer>와<UserContourDrawer>는<UserContourCanvasViewer>와<UserContourCanvasDrawer>로 변경 - 신규
<UserContourViewer>와<UserContourDrawer>는 SVG 기반으로 변경 (Viewport와 무관하게 일정한 Style을 유지함)
useViewportMirroring()는 위치에 관련된 일부 속성만을 미러링 (hflip,vflip,translation,scale)