cornerstonejs / cornerstone3D

Cornerstone is a set of JavaScript libraries that can be used to build web-based medical imaging applications. It provides a framework to build radiology applications such as the OHIF Viewer.
https://cornerstonejs.org
MIT License
557 stars 285 forks source link

[Bug] Unable to render a compressed image through volume #1484

Open woaihengniu opened 1 week ago

woaihengniu commented 1 week ago

Describe the Bug

Can compressed images render mpr functionality? Compression mode (PEG Extended (Process 2&4): Default Transfer Syntax for Lossy JPEG 12 Bit Image Compression (Process 4 only) 1.2.840.10008.1.2.4.51))

Steps to Reproduce

async function loadDcm () { await initcornerstone(); try { hideLoadingContainer(); let dcm1_container = document.getElementById('dcm1'); let dcm2_container = document.getElementById('dcm2'); let dcm3_container = document.getElementById('dcm3'); element1 = document.createElement('div'); element2 = document.createElement('div'); element3 = document.createElement('div'); element1.style.width = elemet1Style.width; element1.style.height = elemet1Style.height; element2.style.width = elemet2Style.width; element2.style.height = elemet2Style.height; element3.style.width = elemet3Style.width; element3.style.height = elemet3Style.height;

    element1.oncontextmenu = (e) => e.preventDefault();
    element2.oncontextmenu = (e) => e.preventDefault();
    element3.oncontextmenu = (e) => e.preventDefault();
    dcm1_container.appendChild(element1);
    dcm2_container.appendChild(element2);
    dcm3_container.appendChild(element3);

    renderingEngine = new RenderingEngine(renderingEngineId);

    volume = await volumeLoader.createAndCacheVolume(volumeId, {
        imageIds: imageIds.value,
    });

    const viewportInputArray = [
        {
            viewportId: viewportId1.value,
            element: element1,
            type: ViewportType.ORTHOGRAPHIC,
            defaultOptions: {
                orientation: Enums.OrientationAxis.AXIAL,
            },
        },
        {
            viewportId: viewportId2.value,
            element: element2,
            type: ViewportType.ORTHOGRAPHIC,
            defaultOptions: {
                orientation:  Enums.OrientationAxis.SAGITTAL,
            },
        },
        {
            viewportId: viewportId3.value,
            element: element3,
            type: ViewportType.ORTHOGRAPHIC,
            defaultOptions: {
                orientation: Enums.OrientationAxis.CORONAL,
            },
        },
    ];
    renderingEngine.setViewports(viewportInputArray);
    let viewport1 = renderingEngine.getVolumeViewports()[0];
    await volume.load();
    await setVolumesForViewports(
        renderingEngine,
        [{ volumeId }],
        viewportIds
    )
    renderingEngine.renderViewports(viewportIds);
} catch (error) {
    hideLoadingContainer();
    cancelLoading();

}

}

The current behavior

N{7V19QF9JR9~XHT)DZO Y4

The expected behavior

The image can be rendered normally

OS

win10

Node version

v18.20.4

Browser

Microsoft Edge 128.0.2739.79

woaihengniu commented 1 week ago

The library I'm using now is 1.85.0

woaihengniu commented 1 week ago

"@cornerstonejs/core": "^1.85.0", "@cornerstonejs/dicom-image-loader": "^1.85.0", "@cornerstonejs/streaming-image-volume-loader": "^1.85.0", "@cornerstonejs/tools": "^1.85.0",