larvitar 3.5.5 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,7 +3,8 @@
3
3
  * rendering images in html canvas using cornerstone
4
4
  */
5
5
  import cornerstone from "cornerstone-core";
6
- import { RenderProps, Series, StoreViewport, Viewport } from "./types";
6
+ import { DisplayedArea, RenderProps, Series, StoreViewport, Viewport } from "./types";
7
+ import { ViewportComplete } from "./tools/types";
7
8
  /**
8
9
  * Purge the cornestone internal cache
9
10
  * If seriesId is passed as argument only imageIds of the series are purged from internal cache
@@ -106,6 +107,23 @@ export declare const unloadViewport: (elementId: string) => void;
106
107
  * @param {String} elementId - The html div id used for rendering or its DOM HTMLElement
107
108
  */
108
109
  export declare const resizeViewport: (elementId: string | HTMLElement) => void;
110
+ /**
111
+ * Check if the displayed image is anisotropic (row pixel spacing !== col pixel spacing)
112
+ * @instance
113
+ * @function isAnisotropic
114
+ * @param {String} elementId - The html div id used for rendering or its DOM HTMLElement
115
+ * @returns {Boolean}
116
+ */
117
+ export declare const isAnisotropic: (elementId: string) => boolean;
118
+ /**
119
+ * Retrieves Anisotropic Viewport displayedArea properties
120
+ * @instance
121
+ * @function getAnisotropicDisplayedArea
122
+ * @param {String} elementId - The html div id used for rendering or its DOM HTMLElement
123
+ * @param {ViewportComplete} viewport - The viewport
124
+ * @returns {DisplayedArea}
125
+ */
126
+ export declare const getAnisotropicDisplayedArea: (id: string, viewport: ViewportComplete) => DisplayedArea | undefined;
109
127
  /**
110
128
  * Cache image and render it in a html div using cornerstone
111
129
  * @instance
@@ -2,7 +2,7 @@
2
2
  * @desc This file provides utility functions for
3
3
  * manipulating image pixels and image metadata
4
4
  */
5
- import type { CustomDataSet, MetaData, ReslicedInstance, Series } from "./types";
5
+ import type { CustomDataSet, MetaData, ReslicedInstance, Series, TypedArray } from "./types";
6
6
  /**
7
7
  * @typedef {Object} CornerstoneSeries
8
8
  * @property {Array} imageIds Array of the instances imageIds
@@ -16,20 +16,30 @@ import type { CustomDataSet, MetaData, ReslicedInstance, Series } from "./types"
16
16
  * @param {Array} el - The image_orientation dicom tag
17
17
  */
18
18
  export declare const getNormalOrientation: (el: [number, number, number, number, number, number]) => number[];
19
+ /**
20
+ * Get the min and max pixel value from pixelData
21
+ * @instance
22
+ * @function getMinPixelValue
23
+ * @param {Array} pixelData - Pixel data array
24
+ */
25
+ export declare const getMinMaxPixelValue: (pixelData: number[] | TypedArray) => {
26
+ minPixelValue: number;
27
+ maxPixelValue: number;
28
+ };
19
29
  /**
20
30
  * Get the min pixel value from pixelData
21
31
  * @instance
22
32
  * @function getMinPixelValue
23
33
  * @param {Array} pixelData - Pixel data array
24
34
  */
25
- export declare const getMinPixelValue: (pixelData: number[]) => number;
35
+ export declare const getMinPixelValue: (pixelData: number[] | TypedArray) => number;
26
36
  /**
27
37
  * Get the max pixel value from pixelData
28
38
  * @instance
29
39
  * @function getMaxPixelValue
30
40
  * @param {Array} pixelData - Pixel data array
31
41
  */
32
- export declare const getMaxPixelValue: (pixelData: number[]) => number;
42
+ export declare const getMaxPixelValue: (pixelData: number[] | TypedArray) => number;
33
43
  /**
34
44
  * Create the pixel representation string (type and length) from dicom tags
35
45
  * @instance
@@ -0,0 +1,29 @@
1
+ import { Image, TypedArray, KernelConfig } from "../types";
2
+ /**
3
+ * Apply convolution filter to DICOM image
4
+ * @param {Object} loadedImage - The DICOM image object
5
+ * @param {string} filterName - Name of the filter to apply
6
+ * @param {number} multiplier - Optional multiplier for kernel values (default: 1)
7
+ * @returns {TypedArray} - Convolved pixel data
8
+ */
9
+ export declare function applyConvolutionFilter(loadedImage: Image, filterName: string, generateImage?: boolean, multiplier?: number): Partial<Image> | TypedArray;
10
+ /**
11
+ * Create the filtered image
12
+ * @param {string} name - Name for the new kernel
13
+ * @param {Object} config - Kernel configuration (modality, label, size, kernel)
14
+ * @returns {Partial<Image>} - Convolved pixel data
15
+ */
16
+ export declare function createFilteredImage(loadedImage: Image, filteredPixelArray: number[]): Partial<Image>;
17
+ /**
18
+ * Add custom kernel to the global object
19
+ * @param {string} name - Name for the new kernel
20
+ * @param {Object} config - Kernel configuration (modality, label, size, kernel)
21
+ */
22
+ export declare function addCustomKernel(name: string, config: KernelConfig): void;
23
+ /**
24
+ * Get kernels
25
+ * @returns {Object} - CONVOLUTION_KERNELS object
26
+ */
27
+ export declare function getKernels(): {
28
+ [x: string]: KernelConfig;
29
+ };
@@ -1,5 +1,5 @@
1
1
  import { EnabledElement } from "cornerstone-core";
2
- import { Image, Viewport } from "../types";
2
+ import { DisplayedArea, Image, Viewport } from "../types";
3
3
  type ToolOptions = {
4
4
  mouseButtonMask?: number | number[];
5
5
  supportedInteractionTypes?: string[];
@@ -131,7 +131,7 @@ export type HandlePosition = {
131
131
  };
132
132
  export interface ViewportComplete extends Viewport {
133
133
  initialRotation: number;
134
- displayedArea: any;
134
+ displayedArea: DisplayedArea;
135
135
  scale: number;
136
136
  rotation: number;
137
137
  vflip: boolean;
@@ -3,7 +3,7 @@ import { DataSet } from "dicom-parser";
3
3
  import { MetaDataTypes } from "./MetaDataTypes";
4
4
  import { MetaDataReadable } from "./MetaDataReadable";
5
5
  import { Element } from "dicom-parser";
6
- import { Overlay } from "./tools/types";
6
+ import { Coords, DisplayAreaVisualizations, Overlay } from "./tools/types";
7
7
  export type tags = {
8
8
  [x: string]: Element;
9
9
  }[];
@@ -186,21 +186,15 @@ export interface Layer extends cornerstone.EnabledElementLayer {
186
186
  }
187
187
  export interface Viewport extends cornerstone.Viewport {
188
188
  newImageIdIndex: number;
189
- displayedArea: {
190
- tlhc: {
191
- x: number;
192
- y: number;
193
- };
194
- brhc: {
195
- x: number;
196
- y: number;
197
- };
198
- columnPixelSpacing: number;
199
- rowPixelSpacing: number;
200
- presentationSizeMode: string;
201
- };
202
189
  overlayColor?: boolean | string;
203
190
  }
191
+ export type DisplayedArea = {
192
+ tlhc?: Coords;
193
+ brhc?: Coords;
194
+ presentationSizeMode?: DisplayAreaVisualizations;
195
+ rowPixelSpacing?: number;
196
+ columnPixelSpacing?: number;
197
+ };
204
198
  export type Contours = {
205
199
  [key: string]: {
206
200
  [key: string]: Array<{
@@ -338,7 +332,13 @@ type translation = {
338
332
  x: number;
339
333
  y: number;
340
334
  };
335
+ export type KernelConfig = {
336
+ label: string;
337
+ size: number;
338
+ kernel: number[][];
339
+ };
341
340
  export type RenderProps = {
341
+ filterName?: string;
342
342
  cached?: boolean;
343
343
  imageIndex?: number;
344
344
  scale?: number;
package/dist/index.d.ts CHANGED
@@ -13,7 +13,7 @@ import { parseContours } from "./imaging/imageContours";
13
13
  import { parseECG } from "./imaging/parsers/ecg";
14
14
  import { renderECG, unrenderECG, syncECGFrame, updateECGMarker, updateECGTotalTime, getDefaultECGLayout } from "./imaging/waveforms/ecg";
15
15
  import { getImagePresets, setImagePreset, setImageCustomPreset } from "./imaging/imagePresets";
16
- import { getNormalOrientation, getMinPixelValue, getMaxPixelValue, getPixelRepresentation, getTypedArrayFromDataType, getSortedStack, randomId, getMeanValue, getReslicedMetadata, getReslicedPixeldata, getDistanceBetweenSlices, getImageMetadata } from "./imaging/imageUtils";
16
+ import { getNormalOrientation, getMinPixelValue, getMaxPixelValue, getMinMaxPixelValue, getPixelRepresentation, getTypedArrayFromDataType, getSortedStack, randomId, getMeanValue, getReslicedMetadata, getReslicedPixeldata, getDistanceBetweenSlices, getImageMetadata } from "./imaging/imageUtils";
17
17
  import { buildHeader, getCachedPixelData, buildData, buildDataAsync, importNRRDImage, exportImageToBase64, exportImageToBase64OriginalSizes } from "./imaging/imageIo";
18
18
  import { anonymize } from "./imaging/imageAnonymization";
19
19
  import { customizeByteArray } from "./imaging/imageCustomization";
@@ -36,9 +36,10 @@ import { populateDsaImageIds } from "./imaging/loaders/dsaImageLoader";
36
36
  import { resetFileLoader, getFileCustomImageId } from "./imaging/loaders/fileLoader";
37
37
  import { getColormapsList, applyColorMap, addColorMap, fillPixelData, HSVToRGB } from "./imaging/imageColormaps";
38
38
  import { applyDSAShift } from "./imaging/postProcessing/applyDSA";
39
+ import { applyConvolutionFilter, addCustomKernel, getKernels } from "./imaging/postProcessing/applyKernel";
39
40
  import { addMouseKeyHandlers, removeMouseKeyHandlers, toggleMouseToolsListeners } from "./imaging/tools/interaction";
40
41
  import { updateImageManager, populateImageManager, getImageManager, resetImageManager, removeDataFromImageManager, getDataFromImageManager, getSopInstanceUIDFromImageManager, getImageTracker, populateGSPSManager, getGSPSManager, resetGSPSManager, getFileManager, resetFileManager, populateFileManager, getDataFromFileManager } from "./imaging/imageManagers";
41
- export { VERSION, cornerstone, cornerstoneTools, parseDicom, cornerstoneFileImageLoader, segModule, cornerstoneDICOMImageLoader, checkAndClearMemory, checkMemoryAllocation, getUsedMemory, getAvailableMemory, getPerformanceMonitor, activatePerformanceMonitor, deactivatePerformanceMonitor, store, parseECG, renderECG, unrenderECG, syncECGFrame, updateECGMarker, updateECGTotalTime, getDefaultECGLayout, getImagePresets, setImagePreset, setImageCustomPreset, getNormalOrientation, getMinPixelValue, getMaxPixelValue, getPixelRepresentation, getTypedArrayFromDataType, getSortedStack, randomId, getMeanValue, getReslicedMetadata, getReslicedPixeldata, getDistanceBetweenSlices, getImageMetadata, buildHeader, getCachedPixelData, buildData, buildDataAsync, importNRRDImage, exportImageToBase64, exportImageToBase64OriginalSizes, anonymize, customizeByteArray, buildLayer, updateLayer, getActiveLayer, setActiveLayer, initializeImageLoader, initializeWebImageLoader, initializeFileImageLoader, registerNRRDImageLoader, registerResliceLoader, registerMultiFrameImageLoader, registerSingleFrameImageLoader, registerDsaImageLoader, updateLoadedStack, reset, readFile, readFiles, parseDataSet, clearImageParsing, convertQidoMetadata, clearImageCache, clearStandardImageCache, clearDSAImageCache, loadAndCacheImages, renderFileImage, renderDICOMPDF, renderWebImage, disableViewport, unloadViewport, resizeViewport, renderImage, redrawImage, resetViewports, updateViewportData, toggleMouseToolsListeners, storeViewportData, invertImage, flipImageHorizontal, flipImageVertical, rotateImageLeft, rotateImageRight, updateImageManager, populateImageManager, getImageManager, resetImageManager, removeDataFromImageManager, getDataFromImageManager, getSopInstanceUIDFromImageManager, getImageTracker, populateGSPSManager, getGSPSManager, resetGSPSManager, populateFileManager, getFileManager, resetFileManager, getDataFromFileManager, resliceSeries, getColormapsList, applyColorMap, addColorMap, fillPixelData, HSVToRGB, parseContours, getImageFrame, buildNrrdImage, getNrrdImageId, loadNrrdImage, getImageIdFromSlice, getSliceNumberFromImageId, getNrrdSerieDimensions, loadReslicedImage, getDicomImageId, cacheImage, cacheImages, loadAndCacheImageStack, loadAndCacheDsaImageStack, loadMultiFrameImage, buildMultiFrameImage, getMultiFrameImageId, clearMultiFrameCache, setSingleFrameCache, clearSingleFrameCache, loadSingleFrameImage, populateDsaImageIds, resetFileLoader, getFileCustomImageId, applyDSAShift, addDiameterTool, addContoursTool, addMaskEditingTool, getCurrentMaskData, addStackStateToElement, addSeedsTool, clearMeasurements, getToolState, clearToolStateByName, updateDiameterTool, addToolStateSingleSlice, clearCornerstoneElements, syncToolStack, updateStackToolState, setSegmentationConfig, csToolsUpdateStack, initializeCSTools, setToolsStyle, addDefaultTools, addTool, setToolActive, setToolDisabled, setToolEnabled, setToolPassive, DEFAULT_TOOLS, dvTools, getDefaultToolsByType, setDefaultToolsProps, registerExternalTool, addMouseKeyHandlers, removeMouseKeyHandlers, initSegmentationModule, addSegmentationMask, setActiveLabelmap, setActiveSegment, undoLastStroke, redoLastStroke, setBrushProps, hexToRgb, rgbToHex, clearSegmentationState, deleteMask, enableBrushTool, disableBrushTool, toggleContourMode, toggleVisibility, getActiveLabelmapBuffer, updateTemporalViewportData, logger, setLogLevel };
42
+ export { VERSION, cornerstone, cornerstoneTools, parseDicom, cornerstoneFileImageLoader, segModule, cornerstoneDICOMImageLoader, checkAndClearMemory, checkMemoryAllocation, getUsedMemory, getAvailableMemory, getPerformanceMonitor, activatePerformanceMonitor, deactivatePerformanceMonitor, store, parseECG, renderECG, unrenderECG, syncECGFrame, updateECGMarker, updateECGTotalTime, getDefaultECGLayout, getImagePresets, setImagePreset, setImageCustomPreset, getNormalOrientation, getMinPixelValue, getMaxPixelValue, getMinMaxPixelValue, getPixelRepresentation, getTypedArrayFromDataType, getSortedStack, randomId, getMeanValue, getReslicedMetadata, getReslicedPixeldata, getDistanceBetweenSlices, getImageMetadata, buildHeader, getCachedPixelData, buildData, buildDataAsync, importNRRDImage, exportImageToBase64, exportImageToBase64OriginalSizes, anonymize, customizeByteArray, buildLayer, updateLayer, getActiveLayer, setActiveLayer, initializeImageLoader, initializeWebImageLoader, initializeFileImageLoader, registerNRRDImageLoader, registerResliceLoader, registerMultiFrameImageLoader, registerSingleFrameImageLoader, registerDsaImageLoader, updateLoadedStack, reset, readFile, readFiles, parseDataSet, clearImageParsing, convertQidoMetadata, clearImageCache, clearStandardImageCache, clearDSAImageCache, loadAndCacheImages, renderFileImage, renderDICOMPDF, renderWebImage, disableViewport, unloadViewport, resizeViewport, renderImage, redrawImage, resetViewports, updateViewportData, toggleMouseToolsListeners, storeViewportData, invertImage, flipImageHorizontal, flipImageVertical, rotateImageLeft, rotateImageRight, updateImageManager, populateImageManager, getImageManager, resetImageManager, removeDataFromImageManager, getDataFromImageManager, getSopInstanceUIDFromImageManager, getImageTracker, populateGSPSManager, getGSPSManager, resetGSPSManager, populateFileManager, getFileManager, resetFileManager, getDataFromFileManager, resliceSeries, getColormapsList, applyColorMap, addColorMap, fillPixelData, HSVToRGB, parseContours, getImageFrame, buildNrrdImage, getNrrdImageId, loadNrrdImage, getImageIdFromSlice, getSliceNumberFromImageId, getNrrdSerieDimensions, loadReslicedImage, getDicomImageId, cacheImage, cacheImages, loadAndCacheImageStack, loadAndCacheDsaImageStack, loadMultiFrameImage, buildMultiFrameImage, getMultiFrameImageId, clearMultiFrameCache, setSingleFrameCache, clearSingleFrameCache, loadSingleFrameImage, populateDsaImageIds, resetFileLoader, getFileCustomImageId, applyDSAShift, applyConvolutionFilter, addCustomKernel, getKernels, addDiameterTool, addContoursTool, addMaskEditingTool, getCurrentMaskData, addStackStateToElement, addSeedsTool, clearMeasurements, getToolState, clearToolStateByName, updateDiameterTool, addToolStateSingleSlice, clearCornerstoneElements, syncToolStack, updateStackToolState, setSegmentationConfig, csToolsUpdateStack, initializeCSTools, setToolsStyle, addDefaultTools, addTool, setToolActive, setToolDisabled, setToolEnabled, setToolPassive, DEFAULT_TOOLS, dvTools, getDefaultToolsByType, setDefaultToolsProps, registerExternalTool, addMouseKeyHandlers, removeMouseKeyHandlers, initSegmentationModule, addSegmentationMask, setActiveLabelmap, setActiveSegment, undoLastStroke, redoLastStroke, setBrushProps, hexToRgb, rgbToHex, clearSegmentationState, deleteMask, enableBrushTool, disableBrushTool, toggleContourMode, toggleVisibility, getActiveLabelmapBuffer, updateTemporalViewportData, logger, setLogLevel };
42
43
  export declare const updateLarvitarManager: (...args: any) => any;
43
44
  export declare const populateLarvitarManager: (...args: any) => any;
44
45
  export declare const getLarvitarManager: (...args: any) => any;