You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am trying to load a series of files locally and render them as volume . thought the files are valid dicom files . this code doesnt work . Am i correctly getting imagID's here ? No samples are given about how to render a volume from local files.
`
function loadVolumes() {
// Create an input element for file selection
const input = document.createElement('input');
input.type = 'file';
input.multiple = true; // Allow multiple file selection
input.accept = ''; // Limit to DICOM files
// Listen for file selection
input.addEventListener('change', async (event) => {
const target = event.target as HTMLInputElement;
const filechosen = Array.from(target.files || []) as any;
if (filechosen.length === 0) {
return;
}
//cornerstoneDICOMImageLoader.wadouri.fileManager.add(file)
console.log('Selected files:', filechosen);
try {
cornerstoneDICOMImageLoader.wadouri.fileManager.purge();
cache.purgeCache();
cache.purgeVolumeCache();
for (let i = 0; i < filechosen.length; i++) {
const id = cornerstoneDICOMImageLoader.wadouri.fileManager.add(
filechosen[i]
);
await prefetchMetadataInformation(id);
imageIds.push(id);
}
console.log('Image IDs generated lcally:', imageIds);
if (imageIds.length > 0) {
await run(); // Run the rendering after getting image IDs
}
} catch (error) {
console.error('Error generating image IDs:', error);
}
});
// Programmatically click the input to open the file dialog
input.click();
}
async function prefetchMetadataInformation(imageIdsToPrefetch) {
for (let i = 0; i < imageIdsToPrefetch.length; i++) {
await cornerstoneDICOMImageLoader.wadouri.loadImage(imageIdsToPrefetch[i])
.promise;
}
}
// Ensure your existing code correctly imports and uses createImageIdsAndCacheMetaData and run
/**
Runs the demo
*/
async function run() {
// Init Cornerstone and related libraries
await initDemo();
// Get Cornerstone imageIds and fetch metadata into RAM
if (imageIds.length == 0) {
imageIds = await createImageIdsAndCacheMetaData({
StudyInstanceUID:
'1.3.6.1.4.1.14519.5.2.1.7009.2403.334240657131972136850343327463',
SeriesInstanceUID:
'1.3.6.1.4.1.14519.5.2.1.7009.2403.226151125820845824875394858561',
wadoRsRoot: 'https://d3t6nz73ql33tx.cloudfront.net/dicomweb',
});
}
console.log('this is id', imageIds);
// Instantiate a rendering engine
const renderingEngineId = 'myRenderingEngine';
const renderingEngine = new RenderingEngine(renderingEngineId);
// Get the stack viewport that was created
const viewport = <Types.IVolumeViewport>(
renderingEngine.getViewport(viewportId)
);
// Define a unique id for the volume
const volumeName = 'CT_VOLUME_ID'; // Id of the volume less loader prefix
const volumeLoaderScheme = 'cornerstoneStreamingImageVolume'; // Loader id which defines which volume loader to use
const volumeId = ${volumeLoaderScheme}:${volumeName}; // VolumeId with loader id + volume id
// Define a volume in memory
const volume = await volumeLoader.createAndCacheVolume(volumeId, {
imageIds,
});
// Set the volume to load
volume.load();
// Set the volume on the viewport
viewport.setVolumes([
{ volumeId, callback: setCtTransferFunctionForVolumeActor },
]);
// Render the image
viewport.render();
}
run();
`
The text was updated successfully, but these errors were encountered:
I am trying to load a series of files locally and render them as volume . thought the files are valid dicom files . this code doesnt work . Am i correctly getting imagID's here ? No samples are given about how to render a volume from local files.
`
function loadVolumes() {
// Create an input element for file selection
const input = document.createElement('input');
input.type = 'file';
input.multiple = true; // Allow multiple file selection
input.accept = ''; // Limit to DICOM files
// Listen for file selection
input.addEventListener('change', async (event) => {
const target = event.target as HTMLInputElement;
const filechosen = Array.from(target.files || []) as any;
});
// Programmatically click the input to open the file dialog
input.click();
}
async function prefetchMetadataInformation(imageIdsToPrefetch) {
for (let i = 0; i < imageIdsToPrefetch.length; i++) {
await cornerstoneDICOMImageLoader.wadouri.loadImage(imageIdsToPrefetch[i])
.promise;
}
}
// Ensure your existing code correctly imports and uses createImageIdsAndCacheMetaData and run
/**
*/
async function run() {
// Init Cornerstone and related libraries
await initDemo();
// Get Cornerstone imageIds and fetch metadata into RAM
if (imageIds.length == 0) {
imageIds = await createImageIdsAndCacheMetaData({
StudyInstanceUID:
'1.3.6.1.4.1.14519.5.2.1.7009.2403.334240657131972136850343327463',
SeriesInstanceUID:
'1.3.6.1.4.1.14519.5.2.1.7009.2403.226151125820845824875394858561',
wadoRsRoot: 'https://d3t6nz73ql33tx.cloudfront.net/dicomweb',
});
}
console.log('this is id', imageIds);
// Instantiate a rendering engine
const renderingEngineId = 'myRenderingEngine';
const renderingEngine = new RenderingEngine(renderingEngineId);
// Create a stack viewport
const viewportId = 'CT_SAGITTAL_STACK';
const viewportInput = {
viewportId,
type: ViewportType.ORTHOGRAPHIC,
element,
defaultOptions: {
orientation: Enums.OrientationAxis.SAGITTAL,
background: <Types.Point3>[0.2, 0, 0.2],
},
};
renderingEngine.enableElement(viewportInput);
// Get the stack viewport that was created
const viewport = <Types.IVolumeViewport>(
renderingEngine.getViewport(viewportId)
);
// Define a unique id for the volume
const volumeName = 'CT_VOLUME_ID'; // Id of the volume less loader prefix
const volumeLoaderScheme = 'cornerstoneStreamingImageVolume'; // Loader id which defines which volume loader to use
const volumeId =
${volumeLoaderScheme}:${volumeName}
; // VolumeId with loader id + volume id// Define a volume in memory
const volume = await volumeLoader.createAndCacheVolume(volumeId, {
imageIds,
});
// Set the volume to load
volume.load();
// Set the volume on the viewport
viewport.setVolumes([
{ volumeId, callback: setCtTransferFunctionForVolumeActor },
]);
// Render the image
viewport.render();
}
run();
`
The text was updated successfully, but these errors were encountered: